From 6fc4dcdff6028d6dedb0b2316e2b3915e16c8d72 Mon Sep 17 00:00:00 2001 From: stack72 Date: Thu, 21 Jan 2021 17:34:23 +0000 Subject: [PATCH] Upgrade to v2.20.0 of the Datadog Terraform Provider --- CHANGELOG.md | 2 +- .../cmd/pulumi-resource-datadog/schema.json | 813 +++++++- provider/go.mod | 2 +- provider/go.sum | 10 +- provider/resources.go | 1 + sdk/dotnet/Config/Config.cs | 8 +- sdk/dotnet/GetMonitor.cs | 61 + sdk/dotnet/Inputs/DashboardWidgetArgs.cs | 3 + sdk/dotnet/Inputs/DashboardWidgetGetArgs.cs | 3 + ...ashboardWidgetGroupDefinitionWidgetArgs.cs | 3 + ...boardWidgetGroupDefinitionWidgetGetArgs.cs | 3 + .../Inputs/LogsArchiveAzureArchiveArgs.cs | 34 + .../Inputs/LogsArchiveAzureArchiveGetArgs.cs | 34 + .../Inputs/LogsArchiveGcsArchiveArgs.cs | 31 + .../Inputs/LogsArchiveGcsArchiveGetArgs.cs | 31 + sdk/dotnet/Inputs/LogsArchiveS3ArchiveArgs.cs | 31 + .../Inputs/LogsArchiveS3ArchiveGetArgs.cs | 31 + sdk/dotnet/Inputs/LogsArchiveS3Args.cs | 6 - sdk/dotnet/Inputs/LogsArchiveS3GetArgs.cs | 6 - sdk/dotnet/Inputs/LogsMetricComputeArgs.cs | 25 + sdk/dotnet/Inputs/LogsMetricComputeGetArgs.cs | 25 + sdk/dotnet/Inputs/LogsMetricFilterArgs.cs | 22 + sdk/dotnet/Inputs/LogsMetricFilterGetArgs.cs | 22 + sdk/dotnet/Inputs/LogsMetricGroupByArgs.cs | 25 + sdk/dotnet/Inputs/LogsMetricGroupByGetArgs.cs | 25 + .../MonitorMonitorThresholdWindowsArgs.cs | 25 + .../MonitorMonitorThresholdWindowsGetArgs.cs | 25 + .../Inputs/MonitorMonitorThresholdsArgs.cs | 37 + .../Inputs/MonitorMonitorThresholdsGetArgs.cs | 37 + .../Inputs/MonitorThresholdWindowsArgs.cs | 6 - .../Inputs/MonitorThresholdWindowsGetArgs.cs | 6 - ...eticsGlobalVariableParseTestOptionsArgs.cs | 28 + ...csGlobalVariableParseTestOptionsGetArgs.cs | 28 + ...lobalVariableParseTestOptionsParserArgs.cs | 25 + ...alVariableParseTestOptionsParserGetArgs.cs | 25 + sdk/dotnet/LogsArchive.cs | 118 +- sdk/dotnet/LogsMetric.cs | 240 +++ sdk/dotnet/Monitor.cs | 309 ++- sdk/dotnet/Outputs/DashboardWidget.cs | 4 + .../DashboardWidgetGroupDefinitionWidget.cs | 4 + ...GetMonitorMonitorThresholdWindowsResult.cs | 29 + .../GetMonitorMonitorThresholdsResult.cs | 45 + sdk/dotnet/Outputs/LogsArchiveAzureArchive.cs | 41 + sdk/dotnet/Outputs/LogsArchiveGcsArchive.cs | 37 + sdk/dotnet/Outputs/LogsArchiveS3.cs | 8 - sdk/dotnet/Outputs/LogsArchiveS3Archive.cs | 37 + sdk/dotnet/Outputs/LogsMetricCompute.cs | 29 + sdk/dotnet/Outputs/LogsMetricFilter.cs | 24 + sdk/dotnet/Outputs/LogsMetricGroupBy.cs | 29 + .../Outputs/MonitorMonitorThresholdWindows.cs | 29 + .../Outputs/MonitorMonitorThresholds.cs | 45 + sdk/dotnet/Outputs/MonitorThresholdWindows.cs | 6 - ...yntheticsGlobalVariableParseTestOptions.cs | 33 + ...icsGlobalVariableParseTestOptionsParser.cs | 29 + sdk/dotnet/Provider.cs | 8 +- sdk/dotnet/SyntheticsGlobalVariable.cs | 36 + sdk/dotnet/User.cs | 24 +- sdk/go/datadog/config/config.go | 8 +- sdk/go/datadog/getMonitor.go | 96 +- sdk/go/datadog/logsArchive.go | 128 +- sdk/go/datadog/logsMetric.go | 237 +++ sdk/go/datadog/monitor.go | 442 +++-- sdk/go/datadog/provider.go | 16 +- sdk/go/datadog/pulumiTypes.go | 1741 ++++++++++++++++- sdk/go/datadog/syntheticsGlobalVariable.go | 20 + sdk/go/datadog/user.go | 34 +- sdk/nodejs/config/vars.ts | 8 +- sdk/nodejs/getMonitor.ts | 60 + sdk/nodejs/index.ts | 5 + sdk/nodejs/logsArchive.ts | 124 +- sdk/nodejs/logsMetric.ts | 209 ++ sdk/nodejs/monitor.ts | 287 +-- sdk/nodejs/provider.ts | 8 +- sdk/nodejs/syntheticsGlobalVariable.ts | 29 + sdk/nodejs/tsconfig.json | 1 + sdk/nodejs/types/input.ts | 71 +- sdk/nodejs/types/output.ts | 85 +- sdk/nodejs/user.ts | 30 +- sdk/python/pulumi_datadog/__init__.py | 4 + sdk/python/pulumi_datadog/_inputs.py | 455 ++++- sdk/python/pulumi_datadog/_tables.py | 16 + sdk/python/pulumi_datadog/config/vars.py | 8 +- sdk/python/pulumi_datadog/get_monitor.py | 82 +- sdk/python/pulumi_datadog/logs_archive.py | 113 +- sdk/python/pulumi_datadog/logs_metric.py | 204 ++ sdk/python/pulumi_datadog/monitor.py | 271 +-- sdk/python/pulumi_datadog/outputs.py | 421 +++- sdk/python/pulumi_datadog/provider.py | 8 +- sdk/python/pulumi_datadog/screen_board.py | 36 +- .../synthetics_global_variable.py | 30 + sdk/python/pulumi_datadog/user.py | 27 +- 91 files changed, 7025 insertions(+), 952 deletions(-) create mode 100644 sdk/dotnet/Inputs/LogsArchiveAzureArchiveArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsArchiveAzureArchiveGetArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsArchiveGcsArchiveArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsArchiveGcsArchiveGetArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsArchiveS3ArchiveArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsArchiveS3ArchiveGetArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsMetricComputeArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsMetricComputeGetArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsMetricFilterArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsMetricFilterGetArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsMetricGroupByArgs.cs create mode 100644 sdk/dotnet/Inputs/LogsMetricGroupByGetArgs.cs create mode 100644 sdk/dotnet/Inputs/MonitorMonitorThresholdWindowsArgs.cs create mode 100644 sdk/dotnet/Inputs/MonitorMonitorThresholdWindowsGetArgs.cs create mode 100644 sdk/dotnet/Inputs/MonitorMonitorThresholdsArgs.cs create mode 100644 sdk/dotnet/Inputs/MonitorMonitorThresholdsGetArgs.cs create mode 100644 sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsArgs.cs create mode 100644 sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsGetArgs.cs create mode 100644 sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsParserArgs.cs create mode 100644 sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsParserGetArgs.cs create mode 100644 sdk/dotnet/LogsMetric.cs create mode 100644 sdk/dotnet/Outputs/GetMonitorMonitorThresholdWindowsResult.cs create mode 100644 sdk/dotnet/Outputs/GetMonitorMonitorThresholdsResult.cs create mode 100644 sdk/dotnet/Outputs/LogsArchiveAzureArchive.cs create mode 100644 sdk/dotnet/Outputs/LogsArchiveGcsArchive.cs create mode 100644 sdk/dotnet/Outputs/LogsArchiveS3Archive.cs create mode 100644 sdk/dotnet/Outputs/LogsMetricCompute.cs create mode 100644 sdk/dotnet/Outputs/LogsMetricFilter.cs create mode 100644 sdk/dotnet/Outputs/LogsMetricGroupBy.cs create mode 100644 sdk/dotnet/Outputs/MonitorMonitorThresholdWindows.cs create mode 100644 sdk/dotnet/Outputs/MonitorMonitorThresholds.cs create mode 100644 sdk/dotnet/Outputs/SyntheticsGlobalVariableParseTestOptions.cs create mode 100644 sdk/dotnet/Outputs/SyntheticsGlobalVariableParseTestOptionsParser.cs create mode 100644 sdk/go/datadog/logsMetric.go create mode 100644 sdk/nodejs/logsMetric.ts create mode 100644 sdk/python/pulumi_datadog/logs_metric.py diff --git a/CHANGELOG.md b/CHANGELOG.md index a0e09a3f9..164b54805 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ CHANGELOG ========= ## HEAD (Unreleased) -_(none)_ +* Upgrade to v2.20.0 of the datadog Terraform Provider --- diff --git a/provider/cmd/pulumi-resource-datadog/schema.json b/provider/cmd/pulumi-resource-datadog/schema.json index dbe1ca8c5..a877be42c 100644 --- a/provider/cmd/pulumi-resource-datadog/schema.json +++ b/provider/cmd/pulumi-resource-datadog/schema.json @@ -25,7 +25,7 @@ }, "apiUrl": { "type": "string", - "description": "The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the\n/api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And\nif you're working with \"EU\" version of Datadog, use https://api.datadoghq.eu/.\n", + "description": "The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/\npath. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if\nyou're working with \"EU\" version of Datadog, use https://api.datadoghq.eu/.\n", "defaultInfo": { "environment": [ "DATADOG_HOST" @@ -43,7 +43,7 @@ }, "validate": { "type": "boolean", - "description": "Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key\nand app_keywon't be checked.\n" + "description": "Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key\nand app_key won't be checked.\n" } } }, @@ -248,6 +248,14 @@ } } }, + "id": { + "type": "integer", + "language": { + "python": { + "mapCase": false + } + } + }, "iframeDefinition": { "$ref": "#/types/datadog:index/DashboardWidgetIframeDefinition:DashboardWidgetIframeDefinition", "language": { @@ -361,7 +369,14 @@ } } }, - "type": "object" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "id" + ] + } + } }, "datadog:index/DashboardWidgetAlertGraphDefinition:DashboardWidgetAlertGraphDefinition": { "properties": { @@ -2904,6 +2919,14 @@ } } }, + "id": { + "type": "integer", + "language": { + "python": { + "mapCase": false + } + } + }, "iframeDefinition": { "$ref": "#/types/datadog:index/DashboardWidgetGroupDefinitionWidgetIframeDefinition:DashboardWidgetGroupDefinitionWidgetIframeDefinition", "language": { @@ -3017,7 +3040,14 @@ } } }, - "type": "object" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "id" + ] + } + } }, "datadog:index/DashboardWidgetGroupDefinitionWidgetAlertGraphDefinition:DashboardWidgetGroupDefinitionWidgetAlertGraphDefinition": { "properties": { @@ -26913,6 +26943,57 @@ "tenantId" ] }, + "datadog:index/LogsArchiveAzureArchive:LogsArchiveAzureArchive": { + "properties": { + "clientId": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "container": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "path": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "storageAccount": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "tenantId": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "clientId", + "container", + "storageAccount", + "tenantId" + ] + }, "datadog:index/LogsArchiveGcs:LogsArchiveGcs": { "properties": { "bucket": { @@ -26936,6 +27017,49 @@ "projectId" ] }, + "datadog:index/LogsArchiveGcsArchive:LogsArchiveGcsArchive": { + "properties": { + "bucket": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "clientEmail": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "path": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "projectId": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "bucket", + "clientEmail", + "path", + "projectId" + ] + }, "datadog:index/LogsArchiveS3:LogsArchiveS3": { "properties": { "accountId": { @@ -26944,26 +27068,61 @@ "bucket": { "type": "string" }, - "clientEmail": { - "type": "string" - }, "path": { "type": "string" }, - "projectId": { + "roleName": { "type": "string" + } + }, + "type": "object", + "required": [ + "accountId", + "bucket", + "path", + "roleName" + ] + }, + "datadog:index/LogsArchiveS3Archive:LogsArchiveS3Archive": { + "properties": { + "accountId": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "bucket": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "path": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } }, "roleName": { - "type": "string" + "type": "string", + "language": { + "python": { + "mapCase": false + } + } } }, "type": "object", "required": [ "accountId", "bucket", - "clientEmail", "path", - "projectId", "roleName" ] }, @@ -28817,15 +28976,152 @@ "query" ] }, - "datadog:index/MonitorThresholdWindows:MonitorThresholdWindows": { + "datadog:index/LogsMetricCompute:LogsMetricCompute": { + "properties": { + "aggregationType": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "path": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "aggregationType" + ] + }, + "datadog:index/LogsMetricFilter:LogsMetricFilter": { + "properties": { + "query": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "query" + ] + }, + "datadog:index/LogsMetricGroupBy:LogsMetricGroupBy": { + "properties": { + "path": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "tagName": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "path", + "tagName" + ] + }, + "datadog:index/MonitorMonitorThresholdWindows:MonitorMonitorThresholdWindows": { "properties": { "recoveryWindow": { "type": "string", - "description": "describes how long an anomalous metric must be normal before the alert recovers.\n" + "language": { + "python": { + "mapCase": false + } + } }, "triggerWindow": { "type": "string", - "description": "describes how long a metric must be anomalous before an alert triggers.\n" + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "datadog:index/MonitorMonitorThresholds:MonitorMonitorThresholds": { + "properties": { + "critical": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "criticalRecovery": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "ok": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "unknown": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "warning": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "warningRecovery": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "datadog:index/MonitorThresholdWindows:MonitorThresholdWindows": { + "properties": { + "recoveryWindow": { + "type": "string" + }, + "triggerWindow": { + "type": "string" } }, "type": "object" @@ -30473,6 +30769,63 @@ "timeframe" ] }, + "datadog:index/SyntheticsGlobalVariableParseTestOptions:SyntheticsGlobalVariableParseTestOptions": { + "properties": { + "field": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "parser": { + "$ref": "#/types/datadog:index/SyntheticsGlobalVariableParseTestOptionsParser:SyntheticsGlobalVariableParseTestOptionsParser", + "language": { + "python": { + "mapCase": false + } + } + }, + "type": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "parser", + "type" + ] + }, + "datadog:index/SyntheticsGlobalVariableParseTestOptionsParser:SyntheticsGlobalVariableParseTestOptionsParser": { + "properties": { + "type": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "value": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "type" + ] + }, "datadog:index/SyntheticsTestAssertion:SyntheticsTestAssertion": { "properties": { "operator": { @@ -31772,6 +32125,102 @@ "name" ] }, + "datadog:index/getMonitorMonitorThresholdWindows:getMonitorMonitorThresholdWindows": { + "properties": { + "recoveryWindow": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "triggerWindow": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "recoveryWindow", + "triggerWindow" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "datadog:index/getMonitorMonitorThresholds:getMonitorMonitorThresholds": { + "properties": { + "critical": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "criticalRecovery": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "ok": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "unknown": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "warning": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, + "warningRecovery": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "critical", + "criticalRecovery", + "ok", + "unknown", + "warning", + "warningRecovery" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "datadog:index/getMonitorThresholdWindows:getMonitorThresholdWindows": { "properties": { "recoveryWindow": { @@ -32103,7 +32552,7 @@ }, "apiUrl": { "type": "string", - "description": "The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the\n/api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And\nif you're working with \"EU\" version of Datadog, use https://api.datadoghq.eu/.\n", + "description": "The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/\npath. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if\nyou're working with \"EU\" version of Datadog, use https://api.datadoghq.eu/.\n", "defaultInfo": { "environment": [ "DATADOG_HOST" @@ -32121,7 +32570,7 @@ }, "validate": { "type": "boolean", - "description": "Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key\nand app_keywon't be checked.\n" + "description": "Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key\nand app_key won't be checked.\n" } } }, @@ -32971,14 +33420,24 @@ } }, "datadog:index/logsArchive:LogsArchive": { - "description": "Provides a Datadog [Logs Archive API](https://docs.datadoghq.com/api/v2/logs-archives/) resource, which is used to create and manage Datadog logs archives.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nCreate a Datadog logs archive:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\nconst myS3Archive = new datadog.LogsArchive(\"my_s3_archive\", {\n name: \"my s3 archive\",\n query: \"service:myservice\",\n s3: {\n account_id: \"001234567888\",\n bucket: \"my-bucket\",\n path: \"/path/foo\",\n role_name: \"my-role-name\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_datadog as datadog\n\nmy_s3_archive = datadog.LogsArchive(\"myS3Archive\",\n name=\"my s3 archive\",\n query=\"service:myservice\",\n s3=datadog.LogsArchiveS3Args(\n account_id=\"001234567888\",\n bucket=\"my-bucket\",\n path=\"/path/foo\",\n role_name=\"my-role-name\",\n ))\n```\n```csharp\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var myS3Archive = new Datadog.LogsArchive(\"myS3Archive\", new Datadog.LogsArchiveArgs\n {\n Name = \"my s3 archive\",\n Query = \"service:myservice\",\n S3 = new Datadog.Inputs.LogsArchiveS3Args\n {\n Account_id = \"001234567888\",\n Bucket = \"my-bucket\",\n Path = \"/path/foo\",\n Role_name = \"my-role-name\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datadog.NewLogsArchive(ctx, \"myS3Archive\", \u0026datadog.LogsArchiveArgs{\n\t\t\tName: pulumi.String(\"my s3 archive\"),\n\t\t\tQuery: pulumi.String(\"service:myservice\"),\n\t\t\tS3: \u0026datadog.LogsArchiveS3Args{\n\t\t\t\tAccount_id: pulumi.String(\"001234567888\"),\n\t\t\t\tBucket: pulumi.String(\"my-bucket\"),\n\t\t\t\tPath: pulumi.String(\"/path/foo\"),\n\t\t\t\tRole_name: pulumi.String(\"my-role-name\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nLogs archives can be imported using their public string ID, e.g.\n\n```sh\n $ pulumi import datadog:index/logsArchive:LogsArchive my_s3_archive 1Aabc2_dfQPLnXy3HlfK4hi\n```\n\n ", + "description": "Provides a Datadog Logs Archive API resource, which is used to create and manage Datadog logs archives.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\nconst myS3Archive = new datadog.LogsArchive(\"my_s3_archive\", {\n name: \"my s3 archive\",\n query: \"service:myservice\",\n s3Archive: {\n accountId: \"001234567888\",\n bucket: \"my-bucket\",\n path: \"/path/foo\",\n roleName: \"my-role-name\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_datadog as datadog\n\nmy_s3_archive = datadog.LogsArchive(\"myS3Archive\",\n name=\"my s3 archive\",\n query=\"service:myservice\",\n s3_archive=datadog.LogsArchiveS3ArchiveArgs(\n account_id=\"001234567888\",\n bucket=\"my-bucket\",\n path=\"/path/foo\",\n role_name=\"my-role-name\",\n ))\n```\n```csharp\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var myS3Archive = new Datadog.LogsArchive(\"myS3Archive\", new Datadog.LogsArchiveArgs\n {\n Name = \"my s3 archive\",\n Query = \"service:myservice\",\n S3Archive = new Datadog.Inputs.LogsArchiveS3ArchiveArgs\n {\n AccountId = \"001234567888\",\n Bucket = \"my-bucket\",\n Path = \"/path/foo\",\n RoleName = \"my-role-name\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datadog.NewLogsArchive(ctx, \"myS3Archive\", \u0026datadog.LogsArchiveArgs{\n\t\t\tName: pulumi.String(\"my s3 archive\"),\n\t\t\tQuery: pulumi.String(\"service:myservice\"),\n\t\t\tS3Archive: \u0026datadog.LogsArchiveS3ArchiveArgs{\n\t\t\t\tAccountId: pulumi.String(\"001234567888\"),\n\t\t\t\tBucket: pulumi.String(\"my-bucket\"),\n\t\t\t\tPath: pulumi.String(\"/path/foo\"),\n\t\t\t\tRoleName: pulumi.String(\"my-role-name\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n## Schema\n\n### Required\n\n- **name** (String, Required) Your archive name.\n- **query** (String, Required) The archive query/filter. Logs matching this query are included in the archive.\n\n### Optional\n\n- **azure** (Map of String, Optional, Deprecated) Definition of an azure archive.\n- **azure_archive** (Block List, Max: 1) Definition of an azure archive. (see below for nested schema)\n- **gcs** (Map of String, Optional, Deprecated) Definition of a GCS archive.\n- **gcs_archive** (Block List, Max: 1) Definition of a GCS archive. (see below for nested schema)\n- **id** (String, Optional) The ID of this resource.\n- **include_tags** (Boolean, Optional) To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs are sent to the archive.\n- **rehydration_tags** (List of String, Optional) An array of tags to add to rehydrated logs from an archive.\n- **s3** (Map of String, Optional, Deprecated) Definition of an s3 archive.\n- **s3_archive** (Block List, Max: 1) Definition of an s3 archive. (see below for nested schema)\n\n\u003ca id=\"nestedblock--azure_archive\"\u003e\u003c/a\u003e\n### Nested Schema for `azure_archive`\n\nRequired:\n\n- **client_id** (String, Required) Your client id.\n- **container** (String, Required) The container where the archive will be stored.\n- **storage_account** (String, Required) The associated storage account.\n- **tenant_id** (String, Required) Your tenant id.\n\nOptional:\n\n- **path** (String, Optional) The path where the archive will be stored.\n\n\n\u003ca id=\"nestedblock--gcs_archive\"\u003e\u003c/a\u003e\n### Nested Schema for `gcs_archive`\n\nRequired:\n\n- **bucket** (String, Required) Name of your GCS bucket.\n- **client_email** (String, Required) Your client email.\n- **path** (String, Required) Path where the archive will be stored.\n- **project_id** (String, Required) Your project id.\n\n\n\u003ca id=\"nestedblock--s3_archive\"\u003e\u003c/a\u003e\n### Nested Schema for `s3_archive`\n\nRequired:\n\n- **account_id** (String, Required) Your AWS account id.\n- **bucket** (String, Required) Name of your s3 bucket.\n- **path** (String, Required) Path where the archive will be stored.\n- **role_name** (String, Required) Your AWS role name\n\n\n## Import\n\nImport is supported using the following syntax\n\n```sh\n $ pulumi import datadog:index/logsArchive:LogsArchive my_s3_archive 1Aabc2_dfQPLnXy3HlfK4hi\n```\n\n ", "properties": { "azure": { "$ref": "#/types/datadog:index/LogsArchiveAzure:LogsArchiveAzure", + "description": "Definition of an azure archive.\n", + "deprecationMessage": "Define `azure_archive` list with one element instead." + }, + "azureArchive": { + "$ref": "#/types/datadog:index/LogsArchiveAzureArchive:LogsArchiveAzureArchive", "description": "Definition of an azure archive.\n" }, "gcs": { "$ref": "#/types/datadog:index/LogsArchiveGcs:LogsArchiveGcs", + "description": "Definition of a GCS archive.\n", + "deprecationMessage": "Define `gcs_archive` list with one element instead." + }, + "gcsArchive": { + "$ref": "#/types/datadog:index/LogsArchiveGcsArchive:LogsArchiveGcsArchive", "description": "Definition of a GCS archive.\n" }, "includeTags": { @@ -33002,6 +33461,11 @@ }, "s3": { "$ref": "#/types/datadog:index/LogsArchiveS3:LogsArchiveS3", + "description": "Definition of an s3 archive.\n", + "deprecationMessage": "Define `s3_archive` list with one element instead." + }, + "s3Archive": { + "$ref": "#/types/datadog:index/LogsArchiveS3Archive:LogsArchiveS3Archive", "description": "Definition of an s3 archive.\n" } }, @@ -33012,10 +33476,20 @@ "inputProperties": { "azure": { "$ref": "#/types/datadog:index/LogsArchiveAzure:LogsArchiveAzure", + "description": "Definition of an azure archive.\n", + "deprecationMessage": "Define `azure_archive` list with one element instead." + }, + "azureArchive": { + "$ref": "#/types/datadog:index/LogsArchiveAzureArchive:LogsArchiveAzureArchive", "description": "Definition of an azure archive.\n" }, "gcs": { "$ref": "#/types/datadog:index/LogsArchiveGcs:LogsArchiveGcs", + "description": "Definition of a GCS archive.\n", + "deprecationMessage": "Define `gcs_archive` list with one element instead." + }, + "gcsArchive": { + "$ref": "#/types/datadog:index/LogsArchiveGcsArchive:LogsArchiveGcsArchive", "description": "Definition of a GCS archive.\n" }, "includeTags": { @@ -33039,6 +33513,11 @@ }, "s3": { "$ref": "#/types/datadog:index/LogsArchiveS3:LogsArchiveS3", + "description": "Definition of an s3 archive.\n", + "deprecationMessage": "Define `s3_archive` list with one element instead." + }, + "s3Archive": { + "$ref": "#/types/datadog:index/LogsArchiveS3Archive:LogsArchiveS3Archive", "description": "Definition of an s3 archive.\n" } }, @@ -33051,10 +33530,20 @@ "properties": { "azure": { "$ref": "#/types/datadog:index/LogsArchiveAzure:LogsArchiveAzure", + "description": "Definition of an azure archive.\n", + "deprecationMessage": "Define `azure_archive` list with one element instead." + }, + "azureArchive": { + "$ref": "#/types/datadog:index/LogsArchiveAzureArchive:LogsArchiveAzureArchive", "description": "Definition of an azure archive.\n" }, "gcs": { "$ref": "#/types/datadog:index/LogsArchiveGcs:LogsArchiveGcs", + "description": "Definition of a GCS archive.\n", + "deprecationMessage": "Define `gcs_archive` list with one element instead." + }, + "gcsArchive": { + "$ref": "#/types/datadog:index/LogsArchiveGcsArchive:LogsArchiveGcsArchive", "description": "Definition of a GCS archive.\n" }, "includeTags": { @@ -33078,6 +33567,11 @@ }, "s3": { "$ref": "#/types/datadog:index/LogsArchiveS3:LogsArchiveS3", + "description": "Definition of an s3 archive.\n", + "deprecationMessage": "Define `s3_archive` list with one element instead." + }, + "s3Archive": { + "$ref": "#/types/datadog:index/LogsArchiveS3Archive:LogsArchiveS3Archive", "description": "Definition of an s3 archive.\n" } }, @@ -33350,6 +33844,86 @@ "type": "object" } }, + "datadog:index/logsMetric:LogsMetric": { + "description": "Resource for interacting with the logs_metric API\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\nconst testingLogsMetric = new datadog.LogsMetric(\"testing_logs_metric\", {\n compute: {\n aggregationType: \"distribution\",\n path: \"@duration\",\n },\n filter: {\n query: \"service:test\",\n },\n groupBies: [{\n path: \"@status\",\n tagName: \"status\",\n }],\n name: \"testing.logs.metric\",\n});\n```\n```python\nimport pulumi\nimport pulumi_datadog as datadog\n\ntesting_logs_metric = datadog.LogsMetric(\"testingLogsMetric\",\n compute=datadog.LogsMetricComputeArgs(\n aggregation_type=\"distribution\",\n path=\"@duration\",\n ),\n filter=datadog.LogsMetricFilterArgs(\n query=\"service:test\",\n ),\n group_bies=[datadog.LogsMetricGroupByArgs(\n path=\"@status\",\n tag_name=\"status\",\n )],\n name=\"testing.logs.metric\")\n```\n```csharp\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var testingLogsMetric = new Datadog.LogsMetric(\"testingLogsMetric\", new Datadog.LogsMetricArgs\n {\n Compute = new Datadog.Inputs.LogsMetricComputeArgs\n {\n AggregationType = \"distribution\",\n Path = \"@duration\",\n },\n Filter = new Datadog.Inputs.LogsMetricFilterArgs\n {\n Query = \"service:test\",\n },\n GroupBies = \n {\n new Datadog.Inputs.LogsMetricGroupByArgs\n {\n Path = \"@status\",\n TagName = \"status\",\n },\n },\n Name = \"testing.logs.metric\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datadog.NewLogsMetric(ctx, \"testingLogsMetric\", \u0026datadog.LogsMetricArgs{\n\t\t\tCompute: \u0026datadog.LogsMetricComputeArgs{\n\t\t\t\tAggregationType: pulumi.String(\"distribution\"),\n\t\t\t\tPath: pulumi.String(\"@duration\"),\n\t\t\t},\n\t\t\tFilter: \u0026datadog.LogsMetricFilterArgs{\n\t\t\t\tQuery: pulumi.String(\"service:test\"),\n\t\t\t},\n\t\t\tGroupBies: datadog.LogsMetricGroupByArray{\n\t\t\t\t\u0026datadog.LogsMetricGroupByArgs{\n\t\t\t\t\tPath: pulumi.String(\"@status\"),\n\t\t\t\t\tTagName: pulumi.String(\"status\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"testing.logs.metric\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n## Schema\n\n### Required\n\n- **compute** (Block List, Min: 1, Max: 1) The compute rule to compute the log-based metric. This field can't be updated after creation. (see below for nested schema)\n- **filter** (Block List, Min: 1, Max: 1) The log-based metric filter. Logs matching this filter will be aggregated in this metric. (see below for nested schema)\n- **name** (String, Required) The name of the log-based metric. This field can't be updated after creation.\n\n### Optional\n\n- **group_by** (Block List) The rules for the group by. (see below for nested schema)\n- **id** (String, Optional) The ID of this resource.\n\n\u003ca id=\"nestedblock--compute\"\u003e\u003c/a\u003e\n### Nested Schema for `compute`\n\nRequired:\n\n- **aggregation_type** (String, Required) The type of aggregation to use. This field can't be updated after creation.\n\nOptional:\n\n- **path** (String, Optional) The path to the value the log-based metric will aggregate on (only used if the aggregation type is a \"distribution\"). This field can't be updated after creation.\n\n\n\u003ca id=\"nestedblock--filter\"\u003e\u003c/a\u003e\n### Nested Schema for `filter`\n\nRequired:\n\n- **query** (String, Required) The search query - following the log search syntax.\n\n\n\u003ca id=\"nestedblock--group_by\"\u003e\u003c/a\u003e\n### Nested Schema for `group_by`\n\nRequired:\n\n- **path** (String, Required) The path to the value the log-based metric will be aggregated over.\n- **tag_name** (String, Required) Name of the tag that gets created.\n\n\n## Import\n\nImport is supported using the following syntax\n\n```sh\n $ pulumi import datadog:index/logsMetric:LogsMetric testing_logs_metric testing.logs.metric\n```\n\n ", + "properties": { + "compute": { + "$ref": "#/types/datadog:index/LogsMetricCompute:LogsMetricCompute", + "description": "The compute rule to compute the log-based metric. This field can't be updated after creation.\n" + }, + "filter": { + "$ref": "#/types/datadog:index/LogsMetricFilter:LogsMetricFilter", + "description": "The log-based metric filter. Logs matching this filter will be aggregated in this metric.\n" + }, + "groupBies": { + "type": "array", + "items": { + "$ref": "#/types/datadog:index/LogsMetricGroupBy:LogsMetricGroupBy" + }, + "description": "The rules for the group by.\n" + }, + "name": { + "type": "string", + "description": "The name of the log-based metric. This field can't be updated after creation.\n" + } + }, + "required": [ + "compute", + "filter", + "name" + ], + "inputProperties": { + "compute": { + "$ref": "#/types/datadog:index/LogsMetricCompute:LogsMetricCompute", + "description": "The compute rule to compute the log-based metric. This field can't be updated after creation.\n" + }, + "filter": { + "$ref": "#/types/datadog:index/LogsMetricFilter:LogsMetricFilter", + "description": "The log-based metric filter. Logs matching this filter will be aggregated in this metric.\n" + }, + "groupBies": { + "type": "array", + "items": { + "$ref": "#/types/datadog:index/LogsMetricGroupBy:LogsMetricGroupBy" + }, + "description": "The rules for the group by.\n" + }, + "name": { + "type": "string", + "description": "The name of the log-based metric. This field can't be updated after creation.\n" + } + }, + "requiredInputs": [ + "compute", + "filter", + "name" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering LogsMetric resources.\n", + "properties": { + "compute": { + "$ref": "#/types/datadog:index/LogsMetricCompute:LogsMetricCompute", + "description": "The compute rule to compute the log-based metric. This field can't be updated after creation.\n" + }, + "filter": { + "$ref": "#/types/datadog:index/LogsMetricFilter:LogsMetricFilter", + "description": "The log-based metric filter. Logs matching this filter will be aggregated in this metric.\n" + }, + "groupBies": { + "type": "array", + "items": { + "$ref": "#/types/datadog:index/LogsMetricGroupBy:LogsMetricGroupBy" + }, + "description": "The rules for the group by.\n" + }, + "name": { + "type": "string", + "description": "The name of the log-based metric. This field can't be updated after creation.\n" + } + }, + "type": "object" + } + }, "datadog:index/logsPipelineOrder:LogsPipelineOrder": { "description": "Provides a Datadog [Logs Pipeline API](https://docs.datadoghq.com/api/v1/logs-pipelines/) resource, which is used to manage Datadog log pipelines order.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\nconst samplePipelineOrder = new datadog.LogsPipelineOrder(\"samplePipelineOrder\", {\n name: \"sample_pipeline_order\",\n pipelines: [\n datadog_logs_custom_pipeline.sample_pipeline.id,\n datadog_logs_integration_pipeline.python.id,\n ],\n}, {\n dependsOn: [\n \"datadog_logs_custom_pipeline.sample_pipeline\",\n \"datadog_logs_integration_pipeline.python\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_datadog as datadog\n\nsample_pipeline_order = datadog.LogsPipelineOrder(\"samplePipelineOrder\",\n name=\"sample_pipeline_order\",\n pipelines=[\n datadog_logs_custom_pipeline[\"sample_pipeline\"][\"id\"],\n datadog_logs_integration_pipeline[\"python\"][\"id\"],\n ],\n opts=pulumi.ResourceOptions(depends_on=[\n \"datadog_logs_custom_pipeline.sample_pipeline\",\n \"datadog_logs_integration_pipeline.python\",\n ]))\n```\n```csharp\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var samplePipelineOrder = new Datadog.LogsPipelineOrder(\"samplePipelineOrder\", new Datadog.LogsPipelineOrderArgs\n {\n Name = \"sample_pipeline_order\",\n Pipelines = \n {\n datadog_logs_custom_pipeline.Sample_pipeline.Id,\n datadog_logs_integration_pipeline.Python.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn = \n {\n \"datadog_logs_custom_pipeline.sample_pipeline\",\n \"datadog_logs_integration_pipeline.python\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datadog.NewLogsPipelineOrder(ctx, \"samplePipelineOrder\", \u0026datadog.LogsPipelineOrderArgs{\n\t\t\tName: pulumi.String(\"sample_pipeline_order\"),\n\t\t\tPipelines: pulumi.StringArray{\n\t\t\t\tpulumi.Any(datadog_logs_custom_pipeline.Sample_pipeline.Id),\n\t\t\t\tpulumi.Any(datadog_logs_integration_pipeline.Python.Id),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\t\"datadog_logs_custom_pipeline.sample_pipeline\",\n\t\t\t\"datadog_logs_integration_pipeline.python\",\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nThere must be at most one `datadog_logs_pipeline_order` resource. Pipeline order creation is not supported from logs config API. You can import the `datadog_logs_pipeline_order` or create a pipeline order (which is actually doing the update operation).\n\n```sh\n $ pulumi import datadog:index/logsPipelineOrder:LogsPipelineOrder name\u003e \u003cname\u003e\n```\n\n ", "properties": { @@ -33508,11 +34082,11 @@ } }, "datadog:index/monitor:Monitor": { - "description": "Provides a Datadog monitor resource. This can be used to create and manage Datadog monitors.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\n// Create a new Datadog monitor\nconst foo = new datadog.Monitor(\"foo\", {\n name: \"Name for monitor foo\",\n type: \"metric alert\",\n message: \"Monitor triggered. Notify: @hipchat-channel\",\n escalationMessage: \"Escalation message @pagerduty\",\n query: \"avg(last_1h):avg:aws.ec2.cpu{environment:foo,host:foo} by {host} \u003e 4\",\n thresholds: {\n warning: 2,\n warning_recovery: 1,\n critical: 4,\n critical_recovery: 3,\n },\n notifyNoData: false,\n renotifyInterval: 60,\n notifyAudit: false,\n timeoutH: 60,\n includeTags: true,\n tags: [\n \"foo:bar\",\n \"baz\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_datadog as datadog\n\n# Create a new Datadog monitor\nfoo = datadog.Monitor(\"foo\",\n name=\"Name for monitor foo\",\n type=\"metric alert\",\n message=\"Monitor triggered. Notify: @hipchat-channel\",\n escalation_message=\"Escalation message @pagerduty\",\n query=\"avg(last_1h):avg:aws.ec2.cpu{environment:foo,host:foo} by {host} \u003e 4\",\n thresholds=datadog.MonitorThresholdsArgs(\n warning=2,\n warning_recovery=1,\n critical=4,\n critical_recovery=3,\n ),\n notify_no_data=False,\n renotify_interval=60,\n notify_audit=False,\n timeout_h=60,\n include_tags=True,\n tags=[\n \"foo:bar\",\n \"baz\",\n ])\n```\n```csharp\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n // Create a new Datadog monitor\n var foo = new Datadog.Monitor(\"foo\", new Datadog.MonitorArgs\n {\n Name = \"Name for monitor foo\",\n Type = \"metric alert\",\n Message = \"Monitor triggered. Notify: @hipchat-channel\",\n EscalationMessage = \"Escalation message @pagerduty\",\n Query = \"avg(last_1h):avg:aws.ec2.cpu{environment:foo,host:foo} by {host} \u003e 4\",\n Thresholds = new Datadog.Inputs.MonitorThresholdsArgs\n {\n Warning = 2,\n Warning_recovery = 1,\n Critical = 4,\n Critical_recovery = 3,\n },\n NotifyNoData = false,\n RenotifyInterval = 60,\n NotifyAudit = false,\n TimeoutH = 60,\n IncludeTags = true,\n Tags = \n {\n \"foo:bar\",\n \"baz\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datadog.NewMonitor(ctx, \"foo\", \u0026datadog.MonitorArgs{\n\t\t\tName: pulumi.String(\"Name for monitor foo\"),\n\t\t\tType: pulumi.String(\"metric alert\"),\n\t\t\tMessage: pulumi.String(\"Monitor triggered. Notify: @hipchat-channel\"),\n\t\t\tEscalationMessage: pulumi.String(\"Escalation message @pagerduty\"),\n\t\t\tQuery: pulumi.String(\"avg(last_1h):avg:aws.ec2.cpu{environment:foo,host:foo} by {host} \u003e 4\"),\n\t\t\tThresholds: \u0026datadog.MonitorThresholdsArgs{\n\t\t\t\tWarning: pulumi.Float64(2),\n\t\t\t\tWarning_recovery: pulumi.Float64(1),\n\t\t\t\tCritical: pulumi.Float64(4),\n\t\t\t\tCritical_recovery: pulumi.Float64(3),\n\t\t\t},\n\t\t\tNotifyNoData: pulumi.Bool(false),\n\t\t\tRenotifyInterval: pulumi.Int(60),\n\t\t\tNotifyAudit: pulumi.Bool(false),\n\t\t\tTimeoutH: pulumi.Int(60),\n\t\t\tIncludeTags: pulumi.Bool(true),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"baz\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n## Silencing by Hand and by Downtimes\n\nThere are two ways how to silence a single monitor:\n\n- Mute it by hand\n- Create a Downtime\n\nBoth of these actions add a new value to the `silenced` map. This can be problematic if the `silenced` attribute doesn't contain them in your application, as they would be removed on next `pulumi up` invocation. In order to prevent that from happening, you can add following to your monitor:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n```\n```python\nimport pulumi\n```\n```csharp\nusing Pulumi;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treturn nil\n\t})\n}\n```\n\nThe above will make sure that any changes to the `silenced` attribute are ignored.\n\nThis issue doesn't apply to multi-monitor downtimes (those that don't contain `monitor_id` ), as these don't influence contents of the `silenced` attribute.\n\n## Composite Monitors\n\nYou can compose monitors of all types in order to define more specific alert conditions (see the [doc](https://docs.datadoghq.com/monitors/monitor_types/composite/)). You just need to reuse the ID of your `datadog.Monitor` resources. You can also compose any monitor with a `datadog.SyntheticsTest` by passing the computed `monitor_id` attribute in the query.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\nconst bar = new datadog.Monitor(\"bar\", {\n message: \"This is a message\",\n name: \"Composite Monitor\",\n query: pulumi.interpolate`${datadog_monitor_foo.id} || ${datadog_synthetics_test_foo.monitorId}`,\n type: \"composite\",\n});\n```\n```python\nimport pulumi\nimport pulumi_datadog as datadog\n\nbar = datadog.Monitor(\"bar\",\n message=\"This is a message\",\n name=\"Composite Monitor\",\n query=f\"{datadog_monitor['foo']['id']} || {datadog_synthetics_test['foo']['monitor_id']}\",\n type=\"composite\")\n```\n```csharp\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var bar = new Datadog.Monitor(\"bar\", new Datadog.MonitorArgs\n {\n Message = \"This is a message\",\n Name = \"Composite Monitor\",\n Query = $\"{datadog_monitor.Foo.Id} || {datadog_synthetics_test.Foo.Monitor_id}\",\n Type = \"composite\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datadog.NewMonitor(ctx, \"bar\", \u0026datadog.MonitorArgs{\n\t\t\tMessage: pulumi.String(\"This is a message\"),\n\t\t\tName: pulumi.String(\"Composite Monitor\"),\n\t\t\tQuery: pulumi.String(fmt.Sprintf(\"%v%v%v\", datadog_monitor.Foo.Id, \" || \", datadog_synthetics_test.Foo.Monitor_id)),\n\t\t\tType: pulumi.String(\"composite\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\n\n## Import\n\nMonitors can be imported using their numeric ID, e.g. console\n\n```sh\n $ pulumi import datadog:index/monitor:Monitor bytes_received_localhost 2081\n```\n\n ", + "description": "\n\n\n## Import\n\nImport is supported using the following syntax\n\n```sh\n $ pulumi import datadog:index/monitor:Monitor bytes_received_localhost 2081\n```\n\n ", "properties": { "enableLogsSample": { "type": "boolean", - "description": "A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors.\n" + "description": "A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log\nmonitors. Defaults to `false`.\n" }, "escalationMessage": { "type": "string", @@ -33520,47 +34094,54 @@ }, "evaluationDelay": { "type": "integer", - "description": "Time (in seconds) to delay evaluation, as a non-negative integer.\n" + "description": "(Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the\nvalue is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data\nfrom 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have\ndata during evaluation.\n" }, "forceDelete": { "type": "boolean", - "description": "A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor).\n" + "description": "A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO,\ncomposite monitor).\n" }, "includeTags": { "type": "boolean", - "description": "A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true.\n" + "description": "A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title.\nDefaults to `true`.\n" }, "locked": { "type": "boolean", - "description": "A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False.\n" + "description": "A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to\n`false`.\n" }, "message": { "type": "string", "description": "A message to include with notifications for this monitor. Email notifications can be sent to specific users by using the\nsame `@username` notation as events.\n" }, + "monitorThresholdWindows": { + "$ref": "#/types/datadog:index/MonitorMonitorThresholdWindows:MonitorMonitorThresholdWindows", + "description": "A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are\nrequired for, anomaly monitors.\n" + }, + "monitorThresholds": { + "$ref": "#/types/datadog:index/MonitorMonitorThresholds:MonitorMonitorThresholds", + "description": "Alert thresholds of the monitor.\n" + }, "name": { "type": "string", "description": "Name of Datadog monitor.\n" }, "newHostDelay": { "type": "integer", - "description": "Time (in seconds) to allow a host to boot and\n" + "description": "Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor\nresults. Should be a non negative integer. Defaults to `300`.\n" }, "noDataTimeframe": { "type": "integer", - "description": "The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes.\n" + "description": "The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We\nrecommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks.\n" }, "notifyAudit": { "type": "boolean", - "description": "A boolean indicating whether tagged users will be notified on changes to this monitor.\n" + "description": "A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`.\n" }, "notifyNoData": { "type": "boolean", - "description": "A boolean indicating whether this monitor will notify when data stops reporting. Defaults\n" + "description": "A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false.\n" }, "priority": { - "type": "integer", - "description": "Integer from 1 (high) to 5 (low) indicating alert severity.\n" + "type": "integer" }, "query": { "type": "string", @@ -33568,18 +34149,18 @@ }, "renotifyInterval": { "type": "integer", - "description": "The number of minutes after the last notification before a monitor will re-notify\n" + "description": "The number of minutes after the last notification before a monitor will re-notify on the current status. It will only\nre-notify if it's not resolved.\n" }, "requireFullWindow": { "type": "boolean", - "description": "A boolean indicating whether this monitor needs a full window of data before it's evaluated.\n" + "description": "A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set\nthis to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all\ntimes` and `in total` aggregation. `false` otherwise.\n" }, "silenced": { "type": "object", "additionalProperties": { "$ref": "pulumi.json#/Any" }, - "description": "Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider.\n", + "description": "Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute\nthe scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be\nremoved in the next major version of the Terraform Provider.\n", "deprecationMessage": "use Downtime Resource instead" }, "tags": { @@ -33587,26 +34168,29 @@ "items": { "type": "string" }, - "description": "A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API\n" + "description": "A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors\npage of the UI. Note: it's not currently possible to filter by these tags when querying via the API\n" }, "thresholdWindows": { "$ref": "#/types/datadog:index/MonitorThresholdWindows:MonitorThresholdWindows", - "description": "A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are required for, anomaly monitors.\n" + "description": "A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are\nrequired for, anomaly monitors.\n", + "deprecationMessage": "Define `monitor_threshold_windows` list with one element instead." }, "thresholds": { - "$ref": "#/types/datadog:index/MonitorThresholds:MonitorThresholds" + "$ref": "#/types/datadog:index/MonitorThresholds:MonitorThresholds", + "description": "Alert thresholds of the monitor.\n", + "deprecationMessage": "Define `monitor_thresholds` list with one element instead." }, "timeoutH": { "type": "integer", - "description": "The number of hours of the monitor not reporting data before it will automatically resolve\n" + "description": "The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state.\nDefaults to `false`.\n" }, "type": { "type": "string", - "description": "The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the\nDatadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options\nare below. Note: The monitor type cannot be changed after a monitor is created.\n" + "description": "The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the\nDatadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type\ncannot be changed after a monitor is created.\n" }, "validate": { "type": "boolean", - "description": "If set to false, skip the validation call done during `plan` .\n" + "description": "If set to `false`, skip the validation call done during plan.\n" } }, "required": [ @@ -33619,7 +34203,7 @@ "inputProperties": { "enableLogsSample": { "type": "boolean", - "description": "A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors.\n" + "description": "A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log\nmonitors. Defaults to `false`.\n" }, "escalationMessage": { "type": "string", @@ -33627,47 +34211,54 @@ }, "evaluationDelay": { "type": "integer", - "description": "Time (in seconds) to delay evaluation, as a non-negative integer.\n" + "description": "(Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the\nvalue is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data\nfrom 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have\ndata during evaluation.\n" }, "forceDelete": { "type": "boolean", - "description": "A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor).\n" + "description": "A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO,\ncomposite monitor).\n" }, "includeTags": { "type": "boolean", - "description": "A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true.\n" + "description": "A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title.\nDefaults to `true`.\n" }, "locked": { "type": "boolean", - "description": "A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False.\n" + "description": "A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to\n`false`.\n" }, "message": { "type": "string", "description": "A message to include with notifications for this monitor. Email notifications can be sent to specific users by using the\nsame `@username` notation as events.\n" }, + "monitorThresholdWindows": { + "$ref": "#/types/datadog:index/MonitorMonitorThresholdWindows:MonitorMonitorThresholdWindows", + "description": "A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are\nrequired for, anomaly monitors.\n" + }, + "monitorThresholds": { + "$ref": "#/types/datadog:index/MonitorMonitorThresholds:MonitorMonitorThresholds", + "description": "Alert thresholds of the monitor.\n" + }, "name": { "type": "string", "description": "Name of Datadog monitor.\n" }, "newHostDelay": { "type": "integer", - "description": "Time (in seconds) to allow a host to boot and\n" + "description": "Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor\nresults. Should be a non negative integer. Defaults to `300`.\n" }, "noDataTimeframe": { "type": "integer", - "description": "The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes.\n" + "description": "The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We\nrecommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks.\n" }, "notifyAudit": { "type": "boolean", - "description": "A boolean indicating whether tagged users will be notified on changes to this monitor.\n" + "description": "A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`.\n" }, "notifyNoData": { "type": "boolean", - "description": "A boolean indicating whether this monitor will notify when data stops reporting. Defaults\n" + "description": "A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false.\n" }, "priority": { - "type": "integer", - "description": "Integer from 1 (high) to 5 (low) indicating alert severity.\n" + "type": "integer" }, "query": { "type": "string", @@ -33675,18 +34266,18 @@ }, "renotifyInterval": { "type": "integer", - "description": "The number of minutes after the last notification before a monitor will re-notify\n" + "description": "The number of minutes after the last notification before a monitor will re-notify on the current status. It will only\nre-notify if it's not resolved.\n" }, "requireFullWindow": { "type": "boolean", - "description": "A boolean indicating whether this monitor needs a full window of data before it's evaluated.\n" + "description": "A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set\nthis to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all\ntimes` and `in total` aggregation. `false` otherwise.\n" }, "silenced": { "type": "object", "additionalProperties": { "$ref": "pulumi.json#/Any" }, - "description": "Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider.\n", + "description": "Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute\nthe scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be\nremoved in the next major version of the Terraform Provider.\n", "deprecationMessage": "use Downtime Resource instead" }, "tags": { @@ -33694,26 +34285,29 @@ "items": { "type": "string" }, - "description": "A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API\n" + "description": "A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors\npage of the UI. Note: it's not currently possible to filter by these tags when querying via the API\n" }, "thresholdWindows": { "$ref": "#/types/datadog:index/MonitorThresholdWindows:MonitorThresholdWindows", - "description": "A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are required for, anomaly monitors.\n" + "description": "A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are\nrequired for, anomaly monitors.\n", + "deprecationMessage": "Define `monitor_threshold_windows` list with one element instead." }, "thresholds": { - "$ref": "#/types/datadog:index/MonitorThresholds:MonitorThresholds" + "$ref": "#/types/datadog:index/MonitorThresholds:MonitorThresholds", + "description": "Alert thresholds of the monitor.\n", + "deprecationMessage": "Define `monitor_thresholds` list with one element instead." }, "timeoutH": { "type": "integer", - "description": "The number of hours of the monitor not reporting data before it will automatically resolve\n" + "description": "The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state.\nDefaults to `false`.\n" }, "type": { "type": "string", - "description": "The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the\nDatadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options\nare below. Note: The monitor type cannot be changed after a monitor is created.\n" + "description": "The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the\nDatadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type\ncannot be changed after a monitor is created.\n" }, "validate": { "type": "boolean", - "description": "If set to false, skip the validation call done during `plan` .\n" + "description": "If set to `false`, skip the validation call done during plan.\n" } }, "requiredInputs": [ @@ -33727,7 +34321,7 @@ "properties": { "enableLogsSample": { "type": "boolean", - "description": "A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors.\n" + "description": "A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log\nmonitors. Defaults to `false`.\n" }, "escalationMessage": { "type": "string", @@ -33735,47 +34329,54 @@ }, "evaluationDelay": { "type": "integer", - "description": "Time (in seconds) to delay evaluation, as a non-negative integer.\n" + "description": "(Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the\nvalue is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data\nfrom 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have\ndata during evaluation.\n" }, "forceDelete": { "type": "boolean", - "description": "A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor).\n" + "description": "A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO,\ncomposite monitor).\n" }, "includeTags": { "type": "boolean", - "description": "A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true.\n" + "description": "A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title.\nDefaults to `true`.\n" }, "locked": { "type": "boolean", - "description": "A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False.\n" + "description": "A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to\n`false`.\n" }, "message": { "type": "string", "description": "A message to include with notifications for this monitor. Email notifications can be sent to specific users by using the\nsame `@username` notation as events.\n" }, + "monitorThresholdWindows": { + "$ref": "#/types/datadog:index/MonitorMonitorThresholdWindows:MonitorMonitorThresholdWindows", + "description": "A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are\nrequired for, anomaly monitors.\n" + }, + "monitorThresholds": { + "$ref": "#/types/datadog:index/MonitorMonitorThresholds:MonitorMonitorThresholds", + "description": "Alert thresholds of the monitor.\n" + }, "name": { "type": "string", "description": "Name of Datadog monitor.\n" }, "newHostDelay": { "type": "integer", - "description": "Time (in seconds) to allow a host to boot and\n" + "description": "Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor\nresults. Should be a non negative integer. Defaults to `300`.\n" }, "noDataTimeframe": { "type": "integer", - "description": "The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes.\n" + "description": "The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We\nrecommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks.\n" }, "notifyAudit": { "type": "boolean", - "description": "A boolean indicating whether tagged users will be notified on changes to this monitor.\n" + "description": "A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`.\n" }, "notifyNoData": { "type": "boolean", - "description": "A boolean indicating whether this monitor will notify when data stops reporting. Defaults\n" + "description": "A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false.\n" }, "priority": { - "type": "integer", - "description": "Integer from 1 (high) to 5 (low) indicating alert severity.\n" + "type": "integer" }, "query": { "type": "string", @@ -33783,18 +34384,18 @@ }, "renotifyInterval": { "type": "integer", - "description": "The number of minutes after the last notification before a monitor will re-notify\n" + "description": "The number of minutes after the last notification before a monitor will re-notify on the current status. It will only\nre-notify if it's not resolved.\n" }, "requireFullWindow": { "type": "boolean", - "description": "A boolean indicating whether this monitor needs a full window of data before it's evaluated.\n" + "description": "A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set\nthis to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all\ntimes` and `in total` aggregation. `false` otherwise.\n" }, "silenced": { "type": "object", "additionalProperties": { "$ref": "pulumi.json#/Any" }, - "description": "Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider.\n", + "description": "Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute\nthe scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be\nremoved in the next major version of the Terraform Provider.\n", "deprecationMessage": "use Downtime Resource instead" }, "tags": { @@ -33802,26 +34403,29 @@ "items": { "type": "string" }, - "description": "A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API\n" + "description": "A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors\npage of the UI. Note: it's not currently possible to filter by these tags when querying via the API\n" }, "thresholdWindows": { "$ref": "#/types/datadog:index/MonitorThresholdWindows:MonitorThresholdWindows", - "description": "A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are required for, anomaly monitors.\n" + "description": "A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are\nrequired for, anomaly monitors.\n", + "deprecationMessage": "Define `monitor_threshold_windows` list with one element instead." }, "thresholds": { - "$ref": "#/types/datadog:index/MonitorThresholds:MonitorThresholds" + "$ref": "#/types/datadog:index/MonitorThresholds:MonitorThresholds", + "description": "Alert thresholds of the monitor.\n", + "deprecationMessage": "Define `monitor_thresholds` list with one element instead." }, "timeoutH": { "type": "integer", - "description": "The number of hours of the monitor not reporting data before it will automatically resolve\n" + "description": "The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state.\nDefaults to `false`.\n" }, "type": { "type": "string", - "description": "The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the\nDatadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options\nare below. Note: The monitor type cannot be changed after a monitor is created.\n" + "description": "The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the\nDatadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type\ncannot be changed after a monitor is created.\n" }, "validate": { "type": "boolean", - "description": "If set to false, skip the validation call done during `plan` .\n" + "description": "If set to `false`, skip the validation call done during plan.\n" } }, "type": "object" @@ -33889,7 +34493,7 @@ } }, "datadog:index/screenBoard:ScreenBoard": { - "description": "Provides a Datadog screenboard resource. This can be used to create and manage Datadog screenboards.\n\n\u003e **Note:** This resource is outdated. Use the new `datadog.Dashboard` resource instead.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\n// Create a new Datadog screenboard\nconst acceptanceTest = new datadog.ScreenBoard(\"acceptanceTest\", {\n title: \"Test Screenboard\",\n readOnly: true,\n templateVariables: [\n {\n name: \"varname 1\",\n prefix: \"pod_name\",\n \"default\": \"*\",\n },\n {\n name: \"varname 2\",\n prefix: \"service_name\",\n \"default\": \"autoscaling\",\n },\n ],\n widgets: [\n {\n type: \"free_text\",\n x: 5,\n y: 5,\n text: \"test text\",\n textAlign: \"right\",\n fontSize: \"36\",\n color: \"#ffc0cb\",\n },\n {\n type: \"timeseries\",\n x: 25,\n y: 5,\n title: \"graph title terraform\",\n titleSize: 16,\n titleAlign: \"right\",\n legend: true,\n legendSize: 16,\n time: {\n live_span: \"1d\",\n },\n tileDeves: [{\n viz: \"timeseries\",\n requests: [\n {\n q: \"avg:system.cpu.user{*}\",\n type: \"line\",\n style: {\n palette: \"purple\",\n type: \"dashed\",\n width: \"thin\",\n },\n metadataJson: JSON.stringify({\n \"avg:system.cpu.user{*}\": {\n alias: \"CPU Usage\",\n },\n }),\n },\n {\n logQuery: {\n index: \"mcnulty\",\n compute: {\n aggregation: \"avg\",\n facet: \"@duration\",\n interval: 5000,\n },\n search: {\n query: \"status:info\",\n },\n groupBies: [{\n facet: \"host\",\n limit: 10,\n sort: {\n aggregation: \"avg\",\n order: \"desc\",\n facet: \"@duration\",\n },\n }],\n },\n type: \"area\",\n },\n {\n apmQuery: {\n index: \"apm-search\",\n compute: {\n aggregation: \"avg\",\n facet: \"@duration\",\n interval: 5000,\n },\n search: {\n query: \"type:web\",\n },\n groupBies: [{\n facet: \"resource_name\",\n limit: 50,\n sort: {\n aggregation: \"avg\",\n order: \"desc\",\n facet: \"@string_query.interval\",\n },\n }],\n },\n type: \"bars\",\n },\n {\n processQuery: {\n metric: \"process.stat.cpu.total_pct\",\n searchBy: \"error\",\n filterBies: [\"active\"],\n limit: 50,\n },\n type: \"area\",\n },\n ],\n markers: [{\n label: \"test marker\",\n type: \"error dashed\",\n value: \"y \u003c 6\",\n }],\n events: [{\n q: \"test event\",\n }],\n }],\n },\n {\n type: \"query_value\",\n x: 45,\n y: 25,\n title: \"query value title terraform\",\n titleSize: 20,\n titleAlign: \"center\",\n legend: true,\n legendSize: 16,\n tileDeves: [{\n viz: \"query_value\",\n requests: [{\n q: \"avg:system.cpu.user{*}\",\n type: \"line\",\n style: {\n palette: \"purple\",\n type: \"dashed\",\n width: \"thin\",\n },\n conditionalFormats: [\n {\n comparator: \"\u003e\",\n value: \"1\",\n palette: \"white_on_red\",\n },\n {\n comparator: \"\u003e=\",\n value: \"2\",\n palette: \"white_on_yellow\",\n },\n ],\n aggregator: \"max\",\n }],\n customUnit: \"%\",\n autoscale: false,\n precision: \"6\",\n textAlign: \"right\",\n }],\n },\n {\n type: \"toplist\",\n x: 65,\n y: 5,\n title: \"toplist title terraform\",\n legend: true,\n legendSize: \"auto\",\n time: {\n live_span: \"1d\",\n },\n tileDeves: [{\n viz: \"toplist\",\n requests: [{\n q: \"top(avg:system.load.1{*} by {host}, 10, 'mean', 'desc')\",\n style: {\n palette: \"purple\",\n type: \"dashed\",\n width: \"thin\",\n },\n conditionalFormats: [{\n comparator: \"\u003e\",\n value: \"4\",\n palette: \"white_on_green\",\n }],\n }],\n }],\n },\n {\n type: \"change\",\n x: 85,\n y: 5,\n title: \"change title terraform\",\n tileDeves: [{\n viz: \"change\",\n requests: [{\n q: \"min:system.load.1{*} by {host}\",\n compareTo: \"week_before\",\n changeType: \"relative\",\n orderBy: \"present\",\n orderDir: \"asc\",\n extraCol: \"\",\n increaseGood: false,\n }],\n }],\n },\n {\n type: \"event_timeline\",\n x: 105,\n y: 5,\n title: \"event_timeline title terraform\",\n query: \"status:error\",\n time: {\n live_span: \"1d\",\n },\n },\n {\n type: \"event_stream\",\n x: 115,\n y: 5,\n title: \"event_stream title terraform\",\n query: \"*\",\n eventSize: \"l\",\n time: {\n live_span: \"4h\",\n },\n },\n {\n type: \"image\",\n x: 145,\n y: 5,\n title: \"image title terraform\",\n sizing: \"fit\",\n margin: \"large\",\n url: \"https://datadog-prod.imgix.net/img/dd_logo_70x75.png\",\n },\n {\n type: \"note\",\n x: 165,\n y: 5,\n bgcolor: \"pink\",\n textAlign: \"right\",\n fontSize: \"36\",\n tick: true,\n tickEdge: \"bottom\",\n tickPos: `50%`,\n html: \"\u003cb\u003etest note\u003c/b\u003e\",\n },\n {\n type: \"alert_graph\",\n x: 185,\n y: 5,\n title: \"alert graph title terraform\",\n alertId: \"123456\",\n vizType: \"toplist\",\n time: {\n live_span: \"15m\",\n },\n },\n {\n type: \"alert_value\",\n x: 205,\n y: 5,\n title: \"alert value title terraform\",\n alertId: \"123456\",\n textSize: \"fill_height\",\n textAlign: \"right\",\n precision: \"*\",\n unit: \"b\",\n },\n {\n type: \"iframe\",\n x: 225,\n y: 5,\n url: \"https://www.datadoghq.org\",\n },\n {\n type: \"check_status\",\n x: 245,\n y: 5,\n title: \"test title\",\n titleAlign: \"left\",\n grouping: \"check\",\n check: \"aws.ecs.agent_connected\",\n tags: [\"*\"],\n group: \"cluster:test\",\n time: {\n live_span: \"30m\",\n },\n },\n {\n type: \"trace_service\",\n x: 265,\n y: 5,\n env: \"testEnv\",\n serviceService: \"\",\n serviceName: \"\",\n sizeVersion: \"large\",\n layoutVersion: \"three_column\",\n mustShowHits: true,\n mustShowErrors: true,\n mustShowLatency: true,\n mustShowBreakdown: true,\n mustShowDistribution: true,\n mustShowResourceList: true,\n time: {\n live_span: \"30m\",\n },\n },\n {\n type: \"hostmap\",\n x: 285,\n y: 5,\n query: \"avg:system.load.1{*} by {host}\",\n tileDeves: [{\n viz: \"hostmap\",\n nodeType: \"container\",\n scopes: [\"datacenter:test\"],\n groups: [\"pod_name\"],\n noGroupHosts: false,\n noMetricHosts: false,\n requests: [{\n q: \"max:process.stat.container.io.wbps{datacenter:test} by {host}\",\n type: \"fill\",\n }],\n style: {\n palette: \"hostmap_blues\",\n palette_flip: true,\n fill_min: 20,\n fill_max: 300,\n },\n }],\n },\n {\n type: \"manage_status\",\n x: 305,\n y: 5,\n summaryType: \"monitors\",\n displayFormat: \"countsAndList\",\n colorPreference: \"background\",\n hideZeroCounts: true,\n showLastTriggered: false,\n manageStatusShowTitle: false,\n manageStatusTitleText: \"test title\",\n manageStatusTitleSize: \"20\",\n manageStatusTitleAlign: \"right\",\n params: {\n sort: \"status,asc\",\n text: \"status:alert\",\n },\n },\n {\n type: \"log_stream\",\n x: 325,\n y: 5,\n query: \"source:kubernetes\",\n columns: \"[\\\"column1\\\",\\\"column2\\\",\\\"column3\\\"]\",\n logset: \"1234\",\n time: {\n live_span: \"1h\",\n },\n },\n {\n type: \"process\",\n x: 365,\n y: 5,\n tileDeves: [{\n viz: \"process\",\n requests: [{\n queryType: \"process\",\n metric: \"process.stat.cpu.total_pct\",\n textFilter: \"\",\n tagFilters: [],\n limit: 200,\n style: {\n palette: \"dog_classic_area\",\n },\n }],\n }],\n },\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_datadog as datadog\n\n# Create a new Datadog screenboard\nacceptance_test = datadog.ScreenBoard(\"acceptanceTest\",\n title=\"Test Screenboard\",\n read_only=True,\n template_variables=[\n datadog.ScreenBoardTemplateVariableArgs(\n name=\"varname 1\",\n prefix=\"pod_name\",\n default=\"*\",\n ),\n datadog.ScreenBoardTemplateVariableArgs(\n name=\"varname 2\",\n prefix=\"service_name\",\n default=\"autoscaling\",\n ),\n ],\n widgets=[\n datadog.ScreenBoardWidgetArgs(\n type=\"free_text\",\n x=5,\n y=5,\n text=\"test text\",\n text_align=\"right\",\n font_size=\"36\",\n color=\"#ffc0cb\",\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"timeseries\",\n x=25,\n y=5,\n title=\"graph title terraform\",\n title_size=16,\n title_align=\"right\",\n legend=True,\n legend_size=\"16\",\n time={\n \"live_span\": \"1d\",\n },\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"timeseries\",\n requests=[\n datadog.ScreenBoardWidgetTileDefRequestArgs(\n q=\"avg:system.cpu.user{*}\",\n type=\"line\",\n style={\n \"palette\": \"purple\",\n \"type\": \"dashed\",\n \"width\": \"thin\",\n },\n metadata_json=json.dumps({\n \"avg:system.cpu.user{*}\": {\n \"alias\": \"CPU Usage\",\n },\n }),\n ),\n datadog.ScreenBoardWidgetTileDefRequestArgs(\n log_query=datadog.ScreenBoardWidgetTileDefRequestLogQueryArgs(\n index=\"mcnulty\",\n compute=datadog.ScreenBoardWidgetTileDefRequestLogQueryComputeArgs(\n aggregation=\"avg\",\n facet=\"@duration\",\n interval=\"5000\",\n ),\n search=datadog.ScreenBoardWidgetTileDefRequestLogQuerySearchArgs(\n query=\"status:info\",\n ),\n group_bies=[datadog.ScreenBoardWidgetTileDefRequestLogQueryGroupByArgs(\n facet=\"host\",\n limit=10,\n sort=datadog.ScreenBoardWidgetTileDefRequestLogQueryGroupBySortArgs(\n aggregation=\"avg\",\n order=\"desc\",\n facet=\"@duration\",\n ),\n )],\n ),\n type=\"area\",\n ),\n datadog.ScreenBoardWidgetTileDefRequestArgs(\n apm_query=datadog.ScreenBoardWidgetTileDefRequestApmQueryArgs(\n index=\"apm-search\",\n compute=datadog.ScreenBoardWidgetTileDefRequestApmQueryComputeArgs(\n aggregation=\"avg\",\n facet=\"@duration\",\n interval=\"5000\",\n ),\n search=datadog.ScreenBoardWidgetTileDefRequestApmQuerySearchArgs(\n query=\"type:web\",\n ),\n group_bies=[datadog.ScreenBoardWidgetTileDefRequestApmQueryGroupByArgs(\n facet=\"resource_name\",\n limit=50,\n sort=datadog.ScreenBoardWidgetTileDefRequestApmQueryGroupBySortArgs(\n aggregation=\"avg\",\n order=\"desc\",\n facet=\"@string_query.interval\",\n ),\n )],\n ),\n type=\"bars\",\n ),\n datadog.ScreenBoardWidgetTileDefRequestArgs(\n process_query=datadog.ScreenBoardWidgetTileDefRequestProcessQueryArgs(\n metric=\"process.stat.cpu.total_pct\",\n search_by=\"error\",\n filter_bies=[\"active\"],\n limit=50,\n ),\n type=\"area\",\n ),\n ],\n markers=[datadog.ScreenBoardWidgetTileDefMarkerArgs(\n label=\"test marker\",\n type=\"error dashed\",\n value=\"y \u003c 6\",\n )],\n events=[datadog.ScreenBoardWidgetTileDefEventArgs(\n q=\"test event\",\n )],\n )],\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"query_value\",\n x=45,\n y=25,\n title=\"query value title terraform\",\n title_size=20,\n title_align=\"center\",\n legend=True,\n legend_size=\"16\",\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"query_value\",\n requests=[datadog.ScreenBoardWidgetTileDefRequestArgs(\n q=\"avg:system.cpu.user{*}\",\n type=\"line\",\n style={\n \"palette\": \"purple\",\n \"type\": \"dashed\",\n \"width\": \"thin\",\n },\n conditional_formats=[\n datadog.ScreenBoardWidgetTileDefRequestConditionalFormatArgs(\n comparator=\"\u003e\",\n value=\"1\",\n palette=\"white_on_red\",\n ),\n datadog.ScreenBoardWidgetTileDefRequestConditionalFormatArgs(\n comparator=\"\u003e=\",\n value=\"2\",\n palette=\"white_on_yellow\",\n ),\n ],\n aggregator=\"max\",\n )],\n custom_unit=\"%\",\n autoscale=False,\n precision=\"6\",\n text_align=\"right\",\n )],\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"toplist\",\n x=65,\n y=5,\n title=\"toplist title terraform\",\n legend=True,\n legend_size=\"auto\",\n time={\n \"live_span\": \"1d\",\n },\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"toplist\",\n requests=[datadog.ScreenBoardWidgetTileDefRequestArgs(\n q=\"top(avg:system.load.1{*} by {host}, 10, 'mean', 'desc')\",\n style={\n \"palette\": \"purple\",\n \"type\": \"dashed\",\n \"width\": \"thin\",\n },\n conditional_formats=[datadog.ScreenBoardWidgetTileDefRequestConditionalFormatArgs(\n comparator=\"\u003e\",\n value=\"4\",\n palette=\"white_on_green\",\n )],\n )],\n )],\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"change\",\n x=85,\n y=5,\n title=\"change title terraform\",\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"change\",\n requests=[datadog.ScreenBoardWidgetTileDefRequestArgs(\n q=\"min:system.load.1{*} by {host}\",\n compare_to=\"week_before\",\n change_type=\"relative\",\n order_by=\"present\",\n order_dir=\"asc\",\n extra_col=\"\",\n increase_good=False,\n )],\n )],\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"event_timeline\",\n x=105,\n y=5,\n title=\"event_timeline title terraform\",\n query=\"status:error\",\n time={\n \"live_span\": \"1d\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"event_stream\",\n x=115,\n y=5,\n title=\"event_stream title terraform\",\n query=\"*\",\n event_size=\"l\",\n time={\n \"live_span\": \"4h\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"image\",\n x=145,\n y=5,\n title=\"image title terraform\",\n sizing=\"fit\",\n margin=\"large\",\n url=\"https://datadog-prod.imgix.net/img/dd_logo_70x75.png\",\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"note\",\n x=165,\n y=5,\n bgcolor=\"pink\",\n text_align=\"right\",\n font_size=\"36\",\n tick=True,\n tick_edge=\"bottom\",\n tick_pos=\"50%\",\n html=\"\u003cb\u003etest note\u003c/b\u003e\",\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"alert_graph\",\n x=185,\n y=5,\n title=\"alert graph title terraform\",\n alert_id=123456,\n viz_type=\"toplist\",\n time={\n \"live_span\": \"15m\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"alert_value\",\n x=205,\n y=5,\n title=\"alert value title terraform\",\n alert_id=123456,\n text_size=\"fill_height\",\n text_align=\"right\",\n precision=\"*\",\n unit=\"b\",\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"iframe\",\n x=225,\n y=5,\n url=\"https://www.datadoghq.org\",\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"check_status\",\n x=245,\n y=5,\n title=\"test title\",\n title_align=\"left\",\n grouping=\"check\",\n check=\"aws.ecs.agent_connected\",\n tags=[\"*\"],\n group=\"cluster:test\",\n time={\n \"live_span\": \"30m\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"trace_service\",\n x=265,\n y=5,\n env=\"testEnv\",\n service_service=\"\",\n service_name=\"\",\n size_version=\"large\",\n layout_version=\"three_column\",\n must_show_hits=True,\n must_show_errors=True,\n must_show_latency=True,\n must_show_breakdown=True,\n must_show_distribution=True,\n must_show_resource_list=True,\n time={\n \"live_span\": \"30m\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"hostmap\",\n x=285,\n y=5,\n query=\"avg:system.load.1{*} by {host}\",\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"hostmap\",\n node_type=\"container\",\n scopes=[\"datacenter:test\"],\n groups=[\"pod_name\"],\n no_group_hosts=False,\n no_metric_hosts=False,\n requests=[datadog.ScreenBoardWidgetTileDefRequestArgs(\n q=\"max:process.stat.container.io.wbps{datacenter:test} by {host}\",\n type=\"fill\",\n )],\n style={\n \"palette\": \"hostmap_blues\",\n \"palette_flip\": True,\n \"fill_min\": 20,\n \"fill_max\": 300,\n },\n )],\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"manage_status\",\n x=305,\n y=5,\n summary_type=\"monitors\",\n display_format=\"countsAndList\",\n color_preference=\"background\",\n hide_zero_counts=True,\n show_last_triggered=False,\n manage_status_show_title=False,\n manage_status_title_text=\"test title\",\n manage_status_title_size=\"20\",\n manage_status_title_align=\"right\",\n params={\n \"sort\": \"status,asc\",\n \"text\": \"status:alert\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"log_stream\",\n x=325,\n y=5,\n query=\"source:kubernetes\",\n columns=\"[\\\"column1\\\",\\\"column2\\\",\\\"column3\\\"]\",\n logset=\"1234\",\n time={\n \"live_span\": \"1h\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"process\",\n x=365,\n y=5,\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"process\",\n requests=[datadog.ScreenBoardWidgetTileDefRequestArgs(\n query_type=\"process\",\n metric=\"process.stat.cpu.total_pct\",\n text_filter=\"\",\n tag_filters=[],\n limit=200,\n style={\n \"palette\": \"dog_classic_area\",\n },\n )],\n )],\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n // Create a new Datadog screenboard\n var acceptanceTest = new Datadog.ScreenBoard(\"acceptanceTest\", new Datadog.ScreenBoardArgs\n {\n Title = \"Test Screenboard\",\n ReadOnly = true,\n TemplateVariables = \n {\n new Datadog.Inputs.ScreenBoardTemplateVariableArgs\n {\n Name = \"varname 1\",\n Prefix = \"pod_name\",\n Default = \"*\",\n },\n new Datadog.Inputs.ScreenBoardTemplateVariableArgs\n {\n Name = \"varname 2\",\n Prefix = \"service_name\",\n Default = \"autoscaling\",\n },\n },\n Widgets = \n {\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"free_text\",\n X = 5,\n Y = 5,\n Text = \"test text\",\n TextAlign = \"right\",\n FontSize = \"36\",\n Color = \"#ffc0cb\",\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"timeseries\",\n X = 25,\n Y = 5,\n Title = \"graph title terraform\",\n TitleSize = 16,\n TitleAlign = \"right\",\n Legend = true,\n LegendSize = \"16\",\n Time = \n {\n { \"live_span\", \"1d\" },\n },\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"timeseries\",\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n Q = \"avg:system.cpu.user{*}\",\n Type = \"line\",\n Style = \n {\n { \"palette\", \"purple\" },\n { \"type\", \"dashed\" },\n { \"width\", \"thin\" },\n },\n MetadataJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n { \"avg:system.cpu.user{*}\", new Dictionary\u003cstring, object?\u003e\n {\n { \"alias\", \"CPU Usage\" },\n } },\n }),\n },\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n LogQuery = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestLogQueryArgs\n {\n Index = \"mcnulty\",\n Compute = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestLogQueryComputeArgs\n {\n Aggregation = \"avg\",\n Facet = \"@duration\",\n Interval = \"5000\",\n },\n Search = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestLogQuerySearchArgs\n {\n Query = \"status:info\",\n },\n GroupBies = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestLogQueryGroupByArgs\n {\n Facet = \"host\",\n Limit = 10,\n Sort = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestLogQueryGroupBySortArgs\n {\n Aggregation = \"avg\",\n Order = \"desc\",\n Facet = \"@duration\",\n },\n },\n },\n },\n Type = \"area\",\n },\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n ApmQuery = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestApmQueryArgs\n {\n Index = \"apm-search\",\n Compute = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestApmQueryComputeArgs\n {\n Aggregation = \"avg\",\n Facet = \"@duration\",\n Interval = \"5000\",\n },\n Search = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestApmQuerySearchArgs\n {\n Query = \"type:web\",\n },\n GroupBies = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestApmQueryGroupByArgs\n {\n Facet = \"resource_name\",\n Limit = 50,\n Sort = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestApmQueryGroupBySortArgs\n {\n Aggregation = \"avg\",\n Order = \"desc\",\n Facet = \"@string_query.interval\",\n },\n },\n },\n },\n Type = \"bars\",\n },\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n ProcessQuery = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestProcessQueryArgs\n {\n Metric = \"process.stat.cpu.total_pct\",\n SearchBy = \"error\",\n FilterBies = \n {\n \"active\",\n },\n Limit = 50,\n },\n Type = \"area\",\n },\n },\n Markers = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefMarkerArgs\n {\n Label = \"test marker\",\n Type = \"error dashed\",\n Value = \"y \u003c 6\",\n },\n },\n Events = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefEventArgs\n {\n Q = \"test event\",\n },\n },\n },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"query_value\",\n X = 45,\n Y = 25,\n Title = \"query value title terraform\",\n TitleSize = 20,\n TitleAlign = \"center\",\n Legend = true,\n LegendSize = \"16\",\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"query_value\",\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n Q = \"avg:system.cpu.user{*}\",\n Type = \"line\",\n Style = \n {\n { \"palette\", \"purple\" },\n { \"type\", \"dashed\" },\n { \"width\", \"thin\" },\n },\n ConditionalFormats = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestConditionalFormatArgs\n {\n Comparator = \"\u003e\",\n Value = \"1\",\n Palette = \"white_on_red\",\n },\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestConditionalFormatArgs\n {\n Comparator = \"\u003e=\",\n Value = \"2\",\n Palette = \"white_on_yellow\",\n },\n },\n Aggregator = \"max\",\n },\n },\n CustomUnit = \"%\",\n Autoscale = false,\n Precision = \"6\",\n TextAlign = \"right\",\n },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"toplist\",\n X = 65,\n Y = 5,\n Title = \"toplist title terraform\",\n Legend = true,\n LegendSize = \"auto\",\n Time = \n {\n { \"live_span\", \"1d\" },\n },\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"toplist\",\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n Q = \"top(avg:system.load.1{*} by {host}, 10, 'mean', 'desc')\",\n Style = \n {\n { \"palette\", \"purple\" },\n { \"type\", \"dashed\" },\n { \"width\", \"thin\" },\n },\n ConditionalFormats = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestConditionalFormatArgs\n {\n Comparator = \"\u003e\",\n Value = \"4\",\n Palette = \"white_on_green\",\n },\n },\n },\n },\n },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"change\",\n X = 85,\n Y = 5,\n Title = \"change title terraform\",\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"change\",\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n Q = \"min:system.load.1{*} by {host}\",\n CompareTo = \"week_before\",\n ChangeType = \"relative\",\n OrderBy = \"present\",\n OrderDir = \"asc\",\n ExtraCol = \"\",\n IncreaseGood = false,\n },\n },\n },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"event_timeline\",\n X = 105,\n Y = 5,\n Title = \"event_timeline title terraform\",\n Query = \"status:error\",\n Time = \n {\n { \"live_span\", \"1d\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"event_stream\",\n X = 115,\n Y = 5,\n Title = \"event_stream title terraform\",\n Query = \"*\",\n EventSize = \"l\",\n Time = \n {\n { \"live_span\", \"4h\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"image\",\n X = 145,\n Y = 5,\n Title = \"image title terraform\",\n Sizing = \"fit\",\n Margin = \"large\",\n Url = \"https://datadog-prod.imgix.net/img/dd_logo_70x75.png\",\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"note\",\n X = 165,\n Y = 5,\n Bgcolor = \"pink\",\n TextAlign = \"right\",\n FontSize = \"36\",\n Tick = true,\n TickEdge = \"bottom\",\n TickPos = \"50%\",\n Html = \"\u003cb\u003etest note\u003c/b\u003e\",\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"alert_graph\",\n X = 185,\n Y = 5,\n Title = \"alert graph title terraform\",\n AlertId = 123456,\n VizType = \"toplist\",\n Time = \n {\n { \"live_span\", \"15m\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"alert_value\",\n X = 205,\n Y = 5,\n Title = \"alert value title terraform\",\n AlertId = 123456,\n TextSize = \"fill_height\",\n TextAlign = \"right\",\n Precision = \"*\",\n Unit = \"b\",\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"iframe\",\n X = 225,\n Y = 5,\n Url = \"https://www.datadoghq.org\",\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"check_status\",\n X = 245,\n Y = 5,\n Title = \"test title\",\n TitleAlign = \"left\",\n Grouping = \"check\",\n Check = \"aws.ecs.agent_connected\",\n Tags = \n {\n \"*\",\n },\n Group = \"cluster:test\",\n Time = \n {\n { \"live_span\", \"30m\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"trace_service\",\n X = 265,\n Y = 5,\n Env = \"testEnv\",\n ServiceService = \"\",\n ServiceName = \"\",\n SizeVersion = \"large\",\n LayoutVersion = \"three_column\",\n MustShowHits = true,\n MustShowErrors = true,\n MustShowLatency = true,\n MustShowBreakdown = true,\n MustShowDistribution = true,\n MustShowResourceList = true,\n Time = \n {\n { \"live_span\", \"30m\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"hostmap\",\n X = 285,\n Y = 5,\n Query = \"avg:system.load.1{*} by {host}\",\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"hostmap\",\n NodeType = \"container\",\n Scopes = \n {\n \"datacenter:test\",\n },\n Groups = \n {\n \"pod_name\",\n },\n NoGroupHosts = false,\n NoMetricHosts = false,\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n Q = \"max:process.stat.container.io.wbps{datacenter:test} by {host}\",\n Type = \"fill\",\n },\n },\n Style = \n {\n { \"palette\", \"hostmap_blues\" },\n { \"palette_flip\", true },\n { \"fill_min\", 20 },\n { \"fill_max\", 300 },\n },\n },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"manage_status\",\n X = 305,\n Y = 5,\n SummaryType = \"monitors\",\n DisplayFormat = \"countsAndList\",\n ColorPreference = \"background\",\n HideZeroCounts = true,\n ShowLastTriggered = false,\n ManageStatusShowTitle = false,\n ManageStatusTitleText = \"test title\",\n ManageStatusTitleSize = \"20\",\n ManageStatusTitleAlign = \"right\",\n Params = \n {\n { \"sort\", \"status,asc\" },\n { \"text\", \"status:alert\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"log_stream\",\n X = 325,\n Y = 5,\n Query = \"source:kubernetes\",\n Columns = \"[\\\"column1\\\",\\\"column2\\\",\\\"column3\\\"]\",\n Logset = \"1234\",\n Time = \n {\n { \"live_span\", \"1h\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"process\",\n X = 365,\n Y = 5,\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"process\",\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n QueryType = \"process\",\n Metric = \"process.stat.cpu.total_pct\",\n TextFilter = \"\",\n TagFilters = {},\n Limit = 200,\n Style = \n {\n { \"palette\", \"dog_classic_area\" },\n },\n },\n },\n },\n },\n },\n },\n });\n }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nscreenboards can be imported using their numeric ID, e.g.\n\n```sh\n $ pulumi import datadog:index/screenBoard:ScreenBoard my_service_screenboard 2081\n```\n\n ", + "description": "Provides a Datadog screenboard resource. This can be used to create and manage Datadog screenboards.\n\n\u003e **Note:** This resource is outdated. Use the new `datadog.Dashboard` resource instead.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\n// Create a new Datadog screenboard\nconst acceptanceTest = new datadog.ScreenBoard(\"acceptanceTest\", {\n title: \"Test Screenboard\",\n readOnly: true,\n templateVariables: [\n {\n name: \"varname 1\",\n prefix: \"pod_name\",\n \"default\": \"*\",\n },\n {\n name: \"varname 2\",\n prefix: \"service_name\",\n \"default\": \"autoscaling\",\n },\n ],\n widgets: [\n {\n type: \"free_text\",\n x: 5,\n y: 5,\n text: \"test text\",\n textAlign: \"right\",\n fontSize: \"36\",\n color: \"#ffc0cb\",\n },\n {\n type: \"timeseries\",\n x: 25,\n y: 5,\n title: \"graph title terraform\",\n titleSize: 16,\n titleAlign: \"right\",\n legend: true,\n legendSize: 16,\n time: {\n live_span: \"1d\",\n },\n tileDeves: [{\n viz: \"timeseries\",\n requests: [\n {\n q: \"avg:system.cpu.user{*}\",\n type: \"line\",\n style: {\n palette: \"purple\",\n type: \"dashed\",\n width: \"thin\",\n },\n metadataJson: JSON.stringify({\n \"avg:system.cpu.user{*}\": {\n alias: \"CPU Usage\",\n },\n }),\n },\n {\n logQuery: {\n index: \"mcnulty\",\n compute: {\n aggregation: \"avg\",\n facet: \"@duration\",\n interval: 5000,\n },\n search: {\n query: \"status:info\",\n },\n groupBies: [{\n facet: \"host\",\n limit: 10,\n sort: {\n aggregation: \"avg\",\n order: \"desc\",\n facet: \"@duration\",\n },\n }],\n },\n type: \"area\",\n },\n {\n apmQuery: {\n index: \"apm-search\",\n compute: {\n aggregation: \"avg\",\n facet: \"@duration\",\n interval: 5000,\n },\n search: {\n query: \"type:web\",\n },\n groupBies: [{\n facet: \"resource_name\",\n limit: 50,\n sort: {\n aggregation: \"avg\",\n order: \"desc\",\n facet: \"@string_query.interval\",\n },\n }],\n },\n type: \"bars\",\n },\n {\n processQuery: {\n metric: \"process.stat.cpu.total_pct\",\n searchBy: \"error\",\n filterBies: [\"active\"],\n limit: 50,\n },\n type: \"area\",\n },\n ],\n markers: [{\n label: \"test marker\",\n type: \"error dashed\",\n value: \"y \u003c 6\",\n }],\n events: [{\n q: \"test event\",\n }],\n }],\n },\n {\n type: \"query_value\",\n x: 45,\n y: 25,\n title: \"query value title terraform\",\n titleSize: 20,\n titleAlign: \"center\",\n legend: true,\n legendSize: 16,\n tileDeves: [{\n viz: \"query_value\",\n requests: [{\n q: \"avg:system.cpu.user{*}\",\n type: \"line\",\n style: {\n palette: \"purple\",\n type: \"dashed\",\n width: \"thin\",\n },\n conditionalFormats: [\n {\n comparator: \"\u003e\",\n value: \"1\",\n palette: \"white_on_red\",\n },\n {\n comparator: \"\u003e=\",\n value: \"2\",\n palette: \"white_on_yellow\",\n },\n ],\n aggregator: \"max\",\n }],\n customUnit: \"%\",\n autoscale: false,\n precision: \"6\",\n textAlign: \"right\",\n }],\n },\n {\n type: \"toplist\",\n x: 65,\n y: 5,\n title: \"toplist title terraform\",\n legend: true,\n legendSize: \"auto\",\n time: {\n live_span: \"1d\",\n },\n tileDeves: [{\n viz: \"toplist\",\n requests: [{\n q: \"top(avg:system.load.1{*} by {host}, 10, 'mean', 'desc')\",\n style: {\n palette: \"purple\",\n type: \"dashed\",\n width: \"thin\",\n },\n conditionalFormats: [{\n comparator: \"\u003e\",\n value: \"4\",\n palette: \"white_on_green\",\n }],\n }],\n }],\n },\n {\n type: \"change\",\n x: 85,\n y: 5,\n title: \"change title terraform\",\n tileDeves: [{\n viz: \"change\",\n requests: [{\n q: \"min:system.load.1{*} by {host}\",\n compareTo: \"week_before\",\n changeType: \"relative\",\n orderBy: \"present\",\n orderDir: \"asc\",\n extraCol: \"\",\n increaseGood: false,\n }],\n }],\n },\n {\n type: \"event_timeline\",\n x: 105,\n y: 5,\n title: \"event_timeline title terraform\",\n query: \"status:error\",\n time: {\n live_span: \"1d\",\n },\n },\n {\n type: \"event_stream\",\n x: 115,\n y: 5,\n title: \"event_stream title terraform\",\n query: \"*\",\n eventSize: \"l\",\n time: {\n live_span: \"4h\",\n },\n },\n {\n type: \"image\",\n x: 145,\n y: 5,\n title: \"image title terraform\",\n sizing: \"fit\",\n margin: \"large\",\n url: \"https://datadog-prod.imgix.net/img/dd_logo_70x75.png\",\n },\n {\n type: \"note\",\n x: 165,\n y: 5,\n bgcolor: \"pink\",\n textAlign: \"right\",\n fontSize: \"36\",\n tick: true,\n tickEdge: \"bottom\",\n tickPos: `50%`,\n html: \"\u003cb\u003etest note\u003c/b\u003e\",\n },\n {\n type: \"alert_graph\",\n x: 185,\n y: 5,\n title: \"alert graph title terraform\",\n alertId: \"123456\",\n vizType: \"toplist\",\n time: {\n live_span: \"15m\",\n },\n },\n {\n type: \"alert_value\",\n x: 205,\n y: 5,\n title: \"alert value title terraform\",\n alertId: \"123456\",\n textSize: \"fill_height\",\n textAlign: \"right\",\n precision: \"*\",\n unit: \"b\",\n },\n {\n type: \"iframe\",\n x: 225,\n y: 5,\n url: \"https://www.datadoghq.org\",\n },\n {\n type: \"check_status\",\n x: 245,\n y: 5,\n title: \"test title\",\n titleAlign: \"left\",\n grouping: \"check\",\n check: \"aws.ecs.agent_connected\",\n tags: [\"*\"],\n group: \"cluster:test\",\n time: {\n live_span: \"30m\",\n },\n },\n {\n type: \"trace_service\",\n x: 265,\n y: 5,\n env: \"testEnv\",\n serviceService: \"\",\n serviceName: \"\",\n sizeVersion: \"large\",\n layoutVersion: \"three_column\",\n mustShowHits: true,\n mustShowErrors: true,\n mustShowLatency: true,\n mustShowBreakdown: true,\n mustShowDistribution: true,\n mustShowResourceList: true,\n time: {\n live_span: \"30m\",\n },\n },\n {\n type: \"hostmap\",\n x: 285,\n y: 5,\n query: \"avg:system.load.1{*} by {host}\",\n tileDeves: [{\n viz: \"hostmap\",\n nodeType: \"container\",\n scopes: [\"datacenter:test\"],\n groups: [\"pod_name\"],\n noGroupHosts: false,\n noMetricHosts: false,\n requests: [{\n q: \"max:process.stat.container.io.wbps{datacenter:test} by {host}\",\n type: \"fill\",\n }],\n style: {\n palette: \"hostmap_blues\",\n palette_flip: true,\n fill_min: 20,\n fill_max: 300,\n },\n }],\n },\n {\n type: \"manage_status\",\n x: 305,\n y: 5,\n summaryType: \"monitors\",\n displayFormat: \"countsAndList\",\n colorPreference: \"background\",\n hideZeroCounts: true,\n showLastTriggered: false,\n manageStatusShowTitle: false,\n manageStatusTitleText: \"test title\",\n manageStatusTitleSize: \"20\",\n manageStatusTitleAlign: \"right\",\n params: {\n sort: \"status,asc\",\n text: \"status:alert\",\n },\n },\n {\n type: \"log_stream\",\n x: 325,\n y: 5,\n query: \"source:kubernetes\",\n columns: \"[\\\"column1\\\",\\\"column2\\\",\\\"column3\\\"]\",\n logset: \"1234\",\n time: {\n live_span: \"1h\",\n },\n },\n {\n type: \"process\",\n x: 365,\n y: 5,\n tileDeves: [{\n viz: \"process\",\n requests: [{\n queryType: \"process\",\n metric: \"process.stat.cpu.total_pct\",\n textFilter: \"\",\n tagFilters: [],\n limit: 200,\n style: {\n palette: \"dog_classic_area\",\n },\n }],\n }],\n },\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_datadog as datadog\n\n# Create a new Datadog screenboard\nacceptance_test = datadog.ScreenBoard(\"acceptanceTest\",\n title=\"Test Screenboard\",\n read_only=True,\n template_variables=[\n datadog.ScreenBoardTemplateVariableArgs(\n name=\"varname 1\",\n prefix=\"pod_name\",\n default=\"*\",\n ),\n datadog.ScreenBoardTemplateVariableArgs(\n name=\"varname 2\",\n prefix=\"service_name\",\n default=\"autoscaling\",\n ),\n ],\n widgets=[\n datadog.ScreenBoardWidgetArgs(\n type=\"free_text\",\n x=5,\n y=5,\n text=\"test text\",\n text_align=\"right\",\n font_size=\"36\",\n color=\"#ffc0cb\",\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"timeseries\",\n x=25,\n y=5,\n title=\"graph title terraform\",\n title_size=16,\n title_align=\"right\",\n legend=True,\n legend_size=\"16\",\n time={\n \"live_span\": \"1d\",\n },\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"timeseries\",\n requests=[\n datadog.ScreenBoardWidgetTileDefRequestArgs(\n q=\"avg:system.cpu.user{*}\",\n type=\"line\",\n style={\n \"palette\": \"purple\",\n \"type\": \"dashed\",\n \"width\": \"thin\",\n },\n metadata_json=json.dumps({\n \"avg:system.cpu.user{*}\": {\n \"alias\": \"CPU Usage\",\n },\n }),\n ),\n datadog.ScreenBoardWidgetTileDefRequestArgs(\n log_query=datadog.ScreenBoardWidgetTileDefRequestLogQueryArgs(\n index=\"mcnulty\",\n compute=datadog.ScreenBoardWidgetTileDefRequestLogQueryComputeArgs(\n aggregation=\"avg\",\n facet=\"@duration\",\n interval=\"5000\",\n ),\n search=datadog.ScreenBoardWidgetTileDefRequestLogQuerySearchArgs(\n query=\"status:info\",\n ),\n group_bies=[{\n \"facet\": \"host\",\n \"limit\": 10,\n \"sort\": {\n \"aggregation\": \"avg\",\n \"order\": \"desc\",\n \"facet\": \"@duration\",\n },\n }],\n ),\n type=\"area\",\n ),\n datadog.ScreenBoardWidgetTileDefRequestArgs(\n apm_query=datadog.ScreenBoardWidgetTileDefRequestApmQueryArgs(\n index=\"apm-search\",\n compute=datadog.ScreenBoardWidgetTileDefRequestApmQueryComputeArgs(\n aggregation=\"avg\",\n facet=\"@duration\",\n interval=\"5000\",\n ),\n search=datadog.ScreenBoardWidgetTileDefRequestApmQuerySearchArgs(\n query=\"type:web\",\n ),\n group_bies=[{\n \"facet\": \"resource_name\",\n \"limit\": 50,\n \"sort\": {\n \"aggregation\": \"avg\",\n \"order\": \"desc\",\n \"facet\": \"@string_query.interval\",\n },\n }],\n ),\n type=\"bars\",\n ),\n datadog.ScreenBoardWidgetTileDefRequestArgs(\n process_query=datadog.ScreenBoardWidgetTileDefRequestProcessQueryArgs(\n metric=\"process.stat.cpu.total_pct\",\n search_by=\"error\",\n filter_bies=[\"active\"],\n limit=50,\n ),\n type=\"area\",\n ),\n ],\n markers=[datadog.ScreenBoardWidgetTileDefMarkerArgs(\n label=\"test marker\",\n type=\"error dashed\",\n value=\"y \u003c 6\",\n )],\n events=[datadog.ScreenBoardWidgetTileDefEventArgs(\n q=\"test event\",\n )],\n )],\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"query_value\",\n x=45,\n y=25,\n title=\"query value title terraform\",\n title_size=20,\n title_align=\"center\",\n legend=True,\n legend_size=\"16\",\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"query_value\",\n requests=[datadog.ScreenBoardWidgetTileDefRequestArgs(\n q=\"avg:system.cpu.user{*}\",\n type=\"line\",\n style={\n \"palette\": \"purple\",\n \"type\": \"dashed\",\n \"width\": \"thin\",\n },\n conditional_formats=[\n datadog.ScreenBoardWidgetTileDefRequestConditionalFormatArgs(\n comparator=\"\u003e\",\n value=\"1\",\n palette=\"white_on_red\",\n ),\n datadog.ScreenBoardWidgetTileDefRequestConditionalFormatArgs(\n comparator=\"\u003e=\",\n value=\"2\",\n palette=\"white_on_yellow\",\n ),\n ],\n aggregator=\"max\",\n )],\n custom_unit=\"%\",\n autoscale=False,\n precision=\"6\",\n text_align=\"right\",\n )],\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"toplist\",\n x=65,\n y=5,\n title=\"toplist title terraform\",\n legend=True,\n legend_size=\"auto\",\n time={\n \"live_span\": \"1d\",\n },\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"toplist\",\n requests=[datadog.ScreenBoardWidgetTileDefRequestArgs(\n q=\"top(avg:system.load.1{*} by {host}, 10, 'mean', 'desc')\",\n style={\n \"palette\": \"purple\",\n \"type\": \"dashed\",\n \"width\": \"thin\",\n },\n conditional_formats=[datadog.ScreenBoardWidgetTileDefRequestConditionalFormatArgs(\n comparator=\"\u003e\",\n value=\"4\",\n palette=\"white_on_green\",\n )],\n )],\n )],\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"change\",\n x=85,\n y=5,\n title=\"change title terraform\",\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"change\",\n requests=[datadog.ScreenBoardWidgetTileDefRequestArgs(\n q=\"min:system.load.1{*} by {host}\",\n compare_to=\"week_before\",\n change_type=\"relative\",\n order_by=\"present\",\n order_dir=\"asc\",\n extra_col=\"\",\n increase_good=False,\n )],\n )],\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"event_timeline\",\n x=105,\n y=5,\n title=\"event_timeline title terraform\",\n query=\"status:error\",\n time={\n \"live_span\": \"1d\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"event_stream\",\n x=115,\n y=5,\n title=\"event_stream title terraform\",\n query=\"*\",\n event_size=\"l\",\n time={\n \"live_span\": \"4h\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"image\",\n x=145,\n y=5,\n title=\"image title terraform\",\n sizing=\"fit\",\n margin=\"large\",\n url=\"https://datadog-prod.imgix.net/img/dd_logo_70x75.png\",\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"note\",\n x=165,\n y=5,\n bgcolor=\"pink\",\n text_align=\"right\",\n font_size=\"36\",\n tick=True,\n tick_edge=\"bottom\",\n tick_pos=\"50%\",\n html=\"\u003cb\u003etest note\u003c/b\u003e\",\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"alert_graph\",\n x=185,\n y=5,\n title=\"alert graph title terraform\",\n alert_id=123456,\n viz_type=\"toplist\",\n time={\n \"live_span\": \"15m\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"alert_value\",\n x=205,\n y=5,\n title=\"alert value title terraform\",\n alert_id=123456,\n text_size=\"fill_height\",\n text_align=\"right\",\n precision=\"*\",\n unit=\"b\",\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"iframe\",\n x=225,\n y=5,\n url=\"https://www.datadoghq.org\",\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"check_status\",\n x=245,\n y=5,\n title=\"test title\",\n title_align=\"left\",\n grouping=\"check\",\n check=\"aws.ecs.agent_connected\",\n tags=[\"*\"],\n group=\"cluster:test\",\n time={\n \"live_span\": \"30m\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"trace_service\",\n x=265,\n y=5,\n env=\"testEnv\",\n service_service=\"\",\n service_name=\"\",\n size_version=\"large\",\n layout_version=\"three_column\",\n must_show_hits=True,\n must_show_errors=True,\n must_show_latency=True,\n must_show_breakdown=True,\n must_show_distribution=True,\n must_show_resource_list=True,\n time={\n \"live_span\": \"30m\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"hostmap\",\n x=285,\n y=5,\n query=\"avg:system.load.1{*} by {host}\",\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"hostmap\",\n node_type=\"container\",\n scopes=[\"datacenter:test\"],\n groups=[\"pod_name\"],\n no_group_hosts=False,\n no_metric_hosts=False,\n requests=[datadog.ScreenBoardWidgetTileDefRequestArgs(\n q=\"max:process.stat.container.io.wbps{datacenter:test} by {host}\",\n type=\"fill\",\n )],\n style={\n \"palette\": \"hostmap_blues\",\n \"palette_flip\": True,\n \"fill_min\": 20,\n \"fill_max\": 300,\n },\n )],\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"manage_status\",\n x=305,\n y=5,\n summary_type=\"monitors\",\n display_format=\"countsAndList\",\n color_preference=\"background\",\n hide_zero_counts=True,\n show_last_triggered=False,\n manage_status_show_title=False,\n manage_status_title_text=\"test title\",\n manage_status_title_size=\"20\",\n manage_status_title_align=\"right\",\n params={\n \"sort\": \"status,asc\",\n \"text\": \"status:alert\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"log_stream\",\n x=325,\n y=5,\n query=\"source:kubernetes\",\n columns=\"[\\\"column1\\\",\\\"column2\\\",\\\"column3\\\"]\",\n logset=\"1234\",\n time={\n \"live_span\": \"1h\",\n },\n ),\n datadog.ScreenBoardWidgetArgs(\n type=\"process\",\n x=365,\n y=5,\n tile_deves=[datadog.ScreenBoardWidgetTileDefArgs(\n viz=\"process\",\n requests=[datadog.ScreenBoardWidgetTileDefRequestArgs(\n query_type=\"process\",\n metric=\"process.stat.cpu.total_pct\",\n text_filter=\"\",\n tag_filters=[],\n limit=200,\n style={\n \"palette\": \"dog_classic_area\",\n },\n )],\n )],\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n // Create a new Datadog screenboard\n var acceptanceTest = new Datadog.ScreenBoard(\"acceptanceTest\", new Datadog.ScreenBoardArgs\n {\n Title = \"Test Screenboard\",\n ReadOnly = true,\n TemplateVariables = \n {\n new Datadog.Inputs.ScreenBoardTemplateVariableArgs\n {\n Name = \"varname 1\",\n Prefix = \"pod_name\",\n Default = \"*\",\n },\n new Datadog.Inputs.ScreenBoardTemplateVariableArgs\n {\n Name = \"varname 2\",\n Prefix = \"service_name\",\n Default = \"autoscaling\",\n },\n },\n Widgets = \n {\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"free_text\",\n X = 5,\n Y = 5,\n Text = \"test text\",\n TextAlign = \"right\",\n FontSize = \"36\",\n Color = \"#ffc0cb\",\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"timeseries\",\n X = 25,\n Y = 5,\n Title = \"graph title terraform\",\n TitleSize = 16,\n TitleAlign = \"right\",\n Legend = true,\n LegendSize = \"16\",\n Time = \n {\n { \"live_span\", \"1d\" },\n },\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"timeseries\",\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n Q = \"avg:system.cpu.user{*}\",\n Type = \"line\",\n Style = \n {\n { \"palette\", \"purple\" },\n { \"type\", \"dashed\" },\n { \"width\", \"thin\" },\n },\n MetadataJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n { \"avg:system.cpu.user{*}\", new Dictionary\u003cstring, object?\u003e\n {\n { \"alias\", \"CPU Usage\" },\n } },\n }),\n },\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n LogQuery = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestLogQueryArgs\n {\n Index = \"mcnulty\",\n Compute = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestLogQueryComputeArgs\n {\n Aggregation = \"avg\",\n Facet = \"@duration\",\n Interval = \"5000\",\n },\n Search = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestLogQuerySearchArgs\n {\n Query = \"status:info\",\n },\n GroupBies = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestLogQueryGroupByArgs\n {\n Facet = \"host\",\n Limit = 10,\n Sort = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestLogQueryGroupBySortArgs\n {\n Aggregation = \"avg\",\n Order = \"desc\",\n Facet = \"@duration\",\n },\n },\n },\n },\n Type = \"area\",\n },\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n ApmQuery = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestApmQueryArgs\n {\n Index = \"apm-search\",\n Compute = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestApmQueryComputeArgs\n {\n Aggregation = \"avg\",\n Facet = \"@duration\",\n Interval = \"5000\",\n },\n Search = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestApmQuerySearchArgs\n {\n Query = \"type:web\",\n },\n GroupBies = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestApmQueryGroupByArgs\n {\n Facet = \"resource_name\",\n Limit = 50,\n Sort = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestApmQueryGroupBySortArgs\n {\n Aggregation = \"avg\",\n Order = \"desc\",\n Facet = \"@string_query.interval\",\n },\n },\n },\n },\n Type = \"bars\",\n },\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n ProcessQuery = new Datadog.Inputs.ScreenBoardWidgetTileDefRequestProcessQueryArgs\n {\n Metric = \"process.stat.cpu.total_pct\",\n SearchBy = \"error\",\n FilterBies = \n {\n \"active\",\n },\n Limit = 50,\n },\n Type = \"area\",\n },\n },\n Markers = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefMarkerArgs\n {\n Label = \"test marker\",\n Type = \"error dashed\",\n Value = \"y \u003c 6\",\n },\n },\n Events = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefEventArgs\n {\n Q = \"test event\",\n },\n },\n },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"query_value\",\n X = 45,\n Y = 25,\n Title = \"query value title terraform\",\n TitleSize = 20,\n TitleAlign = \"center\",\n Legend = true,\n LegendSize = \"16\",\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"query_value\",\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n Q = \"avg:system.cpu.user{*}\",\n Type = \"line\",\n Style = \n {\n { \"palette\", \"purple\" },\n { \"type\", \"dashed\" },\n { \"width\", \"thin\" },\n },\n ConditionalFormats = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestConditionalFormatArgs\n {\n Comparator = \"\u003e\",\n Value = \"1\",\n Palette = \"white_on_red\",\n },\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestConditionalFormatArgs\n {\n Comparator = \"\u003e=\",\n Value = \"2\",\n Palette = \"white_on_yellow\",\n },\n },\n Aggregator = \"max\",\n },\n },\n CustomUnit = \"%\",\n Autoscale = false,\n Precision = \"6\",\n TextAlign = \"right\",\n },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"toplist\",\n X = 65,\n Y = 5,\n Title = \"toplist title terraform\",\n Legend = true,\n LegendSize = \"auto\",\n Time = \n {\n { \"live_span\", \"1d\" },\n },\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"toplist\",\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n Q = \"top(avg:system.load.1{*} by {host}, 10, 'mean', 'desc')\",\n Style = \n {\n { \"palette\", \"purple\" },\n { \"type\", \"dashed\" },\n { \"width\", \"thin\" },\n },\n ConditionalFormats = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestConditionalFormatArgs\n {\n Comparator = \"\u003e\",\n Value = \"4\",\n Palette = \"white_on_green\",\n },\n },\n },\n },\n },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"change\",\n X = 85,\n Y = 5,\n Title = \"change title terraform\",\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"change\",\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n Q = \"min:system.load.1{*} by {host}\",\n CompareTo = \"week_before\",\n ChangeType = \"relative\",\n OrderBy = \"present\",\n OrderDir = \"asc\",\n ExtraCol = \"\",\n IncreaseGood = false,\n },\n },\n },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"event_timeline\",\n X = 105,\n Y = 5,\n Title = \"event_timeline title terraform\",\n Query = \"status:error\",\n Time = \n {\n { \"live_span\", \"1d\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"event_stream\",\n X = 115,\n Y = 5,\n Title = \"event_stream title terraform\",\n Query = \"*\",\n EventSize = \"l\",\n Time = \n {\n { \"live_span\", \"4h\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"image\",\n X = 145,\n Y = 5,\n Title = \"image title terraform\",\n Sizing = \"fit\",\n Margin = \"large\",\n Url = \"https://datadog-prod.imgix.net/img/dd_logo_70x75.png\",\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"note\",\n X = 165,\n Y = 5,\n Bgcolor = \"pink\",\n TextAlign = \"right\",\n FontSize = \"36\",\n Tick = true,\n TickEdge = \"bottom\",\n TickPos = \"50%\",\n Html = \"\u003cb\u003etest note\u003c/b\u003e\",\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"alert_graph\",\n X = 185,\n Y = 5,\n Title = \"alert graph title terraform\",\n AlertId = 123456,\n VizType = \"toplist\",\n Time = \n {\n { \"live_span\", \"15m\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"alert_value\",\n X = 205,\n Y = 5,\n Title = \"alert value title terraform\",\n AlertId = 123456,\n TextSize = \"fill_height\",\n TextAlign = \"right\",\n Precision = \"*\",\n Unit = \"b\",\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"iframe\",\n X = 225,\n Y = 5,\n Url = \"https://www.datadoghq.org\",\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"check_status\",\n X = 245,\n Y = 5,\n Title = \"test title\",\n TitleAlign = \"left\",\n Grouping = \"check\",\n Check = \"aws.ecs.agent_connected\",\n Tags = \n {\n \"*\",\n },\n Group = \"cluster:test\",\n Time = \n {\n { \"live_span\", \"30m\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"trace_service\",\n X = 265,\n Y = 5,\n Env = \"testEnv\",\n ServiceService = \"\",\n ServiceName = \"\",\n SizeVersion = \"large\",\n LayoutVersion = \"three_column\",\n MustShowHits = true,\n MustShowErrors = true,\n MustShowLatency = true,\n MustShowBreakdown = true,\n MustShowDistribution = true,\n MustShowResourceList = true,\n Time = \n {\n { \"live_span\", \"30m\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"hostmap\",\n X = 285,\n Y = 5,\n Query = \"avg:system.load.1{*} by {host}\",\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"hostmap\",\n NodeType = \"container\",\n Scopes = \n {\n \"datacenter:test\",\n },\n Groups = \n {\n \"pod_name\",\n },\n NoGroupHosts = false,\n NoMetricHosts = false,\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n Q = \"max:process.stat.container.io.wbps{datacenter:test} by {host}\",\n Type = \"fill\",\n },\n },\n Style = \n {\n { \"palette\", \"hostmap_blues\" },\n { \"palette_flip\", true },\n { \"fill_min\", 20 },\n { \"fill_max\", 300 },\n },\n },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"manage_status\",\n X = 305,\n Y = 5,\n SummaryType = \"monitors\",\n DisplayFormat = \"countsAndList\",\n ColorPreference = \"background\",\n HideZeroCounts = true,\n ShowLastTriggered = false,\n ManageStatusShowTitle = false,\n ManageStatusTitleText = \"test title\",\n ManageStatusTitleSize = \"20\",\n ManageStatusTitleAlign = \"right\",\n Params = \n {\n { \"sort\", \"status,asc\" },\n { \"text\", \"status:alert\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"log_stream\",\n X = 325,\n Y = 5,\n Query = \"source:kubernetes\",\n Columns = \"[\\\"column1\\\",\\\"column2\\\",\\\"column3\\\"]\",\n Logset = \"1234\",\n Time = \n {\n { \"live_span\", \"1h\" },\n },\n },\n new Datadog.Inputs.ScreenBoardWidgetArgs\n {\n Type = \"process\",\n X = 365,\n Y = 5,\n TileDeves = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefArgs\n {\n Viz = \"process\",\n Requests = \n {\n new Datadog.Inputs.ScreenBoardWidgetTileDefRequestArgs\n {\n QueryType = \"process\",\n Metric = \"process.stat.cpu.total_pct\",\n TextFilter = \"\",\n TagFilters = {},\n Limit = 200,\n Style = \n {\n { \"palette\", \"dog_classic_area\" },\n },\n },\n },\n },\n },\n },\n },\n });\n }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nscreenboards can be imported using their numeric ID, e.g.\n\n```sh\n $ pulumi import datadog:index/screenBoard:ScreenBoard my_service_screenboard 2081\n```\n\n ", "properties": { "height": { "type": "string", @@ -34337,6 +34941,14 @@ "type": "string", "description": "Synthetics global variable name.\n" }, + "parseTestId": { + "type": "string", + "description": "Id of the Synthetics test to use for a variable from test.\n" + }, + "parseTestOptions": { + "$ref": "#/types/datadog:index/SyntheticsGlobalVariableParseTestOptions:SyntheticsGlobalVariableParseTestOptions", + "description": "ID of the Synthetics test to use a source of the global variable value.\n" + }, "secure": { "type": "boolean", "description": "Sets the variable as secure. Defaults to `false`.\n" @@ -34366,6 +34978,14 @@ "type": "string", "description": "Synthetics global variable name.\n" }, + "parseTestId": { + "type": "string", + "description": "Id of the Synthetics test to use for a variable from test.\n" + }, + "parseTestOptions": { + "$ref": "#/types/datadog:index/SyntheticsGlobalVariableParseTestOptions:SyntheticsGlobalVariableParseTestOptions", + "description": "ID of the Synthetics test to use a source of the global variable value.\n" + }, "secure": { "type": "boolean", "description": "Sets the variable as secure. Defaults to `false`.\n" @@ -34397,6 +35017,14 @@ "type": "string", "description": "Synthetics global variable name.\n" }, + "parseTestId": { + "type": "string", + "description": "Id of the Synthetics test to use for a variable from test.\n" + }, + "parseTestOptions": { + "$ref": "#/types/datadog:index/SyntheticsGlobalVariableParseTestOptions:SyntheticsGlobalVariableParseTestOptions", + "description": "ID of the Synthetics test to use a source of the global variable value.\n" + }, "secure": { "type": "boolean", "description": "Sets the variable as secure. Defaults to `false`.\n" @@ -34969,11 +35597,12 @@ } }, "datadog:index/user:User": { - "description": "Provides a Datadog user resource. This can be used to create and manage Datadog users.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\nconst roRole = datadog.getRole({\n filter: \"Datadog Read Only Role\",\n});\n// Create a new Datadog user\nconst foo = new datadog.User(\"foo\", {\n email: \"new@example.com\",\n roles: [roRole.then(roRole =\u003e roRole.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_datadog as datadog\n\nro_role = datadog.get_role(filter=\"Datadog Read Only Role\")\n# Create a new Datadog user\nfoo = datadog.User(\"foo\",\n email=\"new@example.com\",\n roles=[ro_role.id])\n```\n```csharp\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var roRole = Output.Create(Datadog.GetRole.InvokeAsync(new Datadog.GetRoleArgs\n {\n Filter = \"Datadog Read Only Role\",\n }));\n // Create a new Datadog user\n var foo = new Datadog.User(\"foo\", new Datadog.UserArgs\n {\n Email = \"new@example.com\",\n Roles = \n {\n roRole.Apply(roRole =\u003e roRole.Id),\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\troRole, err := datadog.LookupRole(ctx, \u0026datadog.LookupRoleArgs{\n\t\t\tFilter: \"Datadog Read Only Role\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datadog.NewUser(ctx, \"foo\", \u0026datadog.UserArgs{\n\t\t\tEmail: pulumi.String(\"new@example.com\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(roRole.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nusers can be imported using their ID, e.g.\n\n```sh\n $ pulumi import datadog:index/user:User example_user 6f1b44c0-30b2-11eb-86bc-279f7c1ebaa4\n```\n\n ", + "description": "Provides a Datadog user resource. This can be used to create and manage Datadog users.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\nconst roRole = datadog.getRole({\n filter: \"Datadog Read Only Role\",\n});\n// Create a new Datadog user\nconst foo = new datadog.User(\"foo\", {\n email: \"new@example.com\",\n roles: [roRole.then(roRole =\u003e roRole.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_datadog as datadog\n\nro_role = datadog.get_role(filter=\"Datadog Read Only Role\")\n# Create a new Datadog user\nfoo = datadog.User(\"foo\",\n email=\"new@example.com\",\n roles=[ro_role.id])\n```\n```csharp\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var roRole = Output.Create(Datadog.GetRole.InvokeAsync(new Datadog.GetRoleArgs\n {\n Filter = \"Datadog Read Only Role\",\n }));\n // Create a new Datadog user\n var foo = new Datadog.User(\"foo\", new Datadog.UserArgs\n {\n Email = \"new@example.com\",\n Roles = \n {\n roRole.Apply(roRole =\u003e roRole.Id),\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\troRole, err := datadog.LookupRole(ctx, \u0026datadog.LookupRoleArgs{\n\t\t\tFilter: \"Datadog Read Only Role\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datadog.NewUser(ctx, \"foo\", \u0026datadog.UserArgs{\n\t\t\tEmail: pulumi.String(\"new@example.com\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(roRole.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n## Schema\n\n### Required\n\n- **email** (String) Email address for user.\n\n### Optional\n\n- **access_role** (String, Deprecated) Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute.\n- **disabled** (Boolean) Whether the user is disabled.\n- **handle** (String, Deprecated) The user handle, must be a valid email.\n- **id** (String) The ID of this resource.\n- **is_admin** (Boolean, Deprecated) Whether the user is an administrator. Warning: the corresponding query parameter is ignored by the Datadog API, thus the argument would always trigger an execution plan.\n- **name** (String) Name for user.\n- **role** (String, Deprecated) Role description for user. Warning: the corresponding query parameter is ignored by the Datadog API, thus the argument would always trigger an execution plan.\n- **roles** (Set of String) A list a role IDs to assign to the user.\n- **send_user_invitation** (Boolean) Whether an invitation email should be sent when the user is created.\n\n### Read-only\n\n- **user_invitation_id** (String) The ID of the user invitation that was sent when creating the user.\n- **verified** (Boolean) Returns true if Datadog user is verified.\n\n\n## Import\n\nImport is supported using the following syntax\n\n```sh\n $ pulumi import datadog:index/user:User example_user 6f1b44c0-30b2-11eb-86bc-279f7c1ebaa4\n```\n\n ", "properties": { "accessRole": { "type": "string", - "description": "Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`.\n`access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute.\n" + "description": "Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`.\n`access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute.\n", + "deprecationMessage": "This parameter is replaced by `roles` and will be removed from the next Major version" }, "disabled": { "type": "boolean", @@ -35031,7 +35660,8 @@ "inputProperties": { "accessRole": { "type": "string", - "description": "Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`.\n`access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute.\n" + "description": "Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`.\n`access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute.\n", + "deprecationMessage": "This parameter is replaced by `roles` and will be removed from the next Major version" }, "disabled": { "type": "boolean", @@ -35080,7 +35710,8 @@ "properties": { "accessRole": { "type": "string", - "description": "Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`.\n`access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute.\n" + "description": "Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`.\n`access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute.\n", + "deprecationMessage": "This parameter is replaced by `roles` and will be removed from the next Major version" }, "disabled": { "type": "boolean", @@ -35466,7 +36097,7 @@ } }, "datadog:index/getMonitor:getMonitor": { - "description": "Use this data source to retrieve information about an existing monitor for use in other resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\nconst test = pulumi.output(datadog.getMonitor({\n monitorTagsFilters: [\"foo:bar\"],\n nameFilter: \"My awesome monitor\",\n}, { async: true }));\n```\n```python\nimport pulumi\nimport pulumi_datadog as datadog\n\ntest = datadog.get_monitor(monitor_tags_filters=[\"foo:bar\"],\n name_filter=\"My awesome monitor\")\n```\n```csharp\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var test = Output.Create(Datadog.GetMonitor.InvokeAsync(new Datadog.GetMonitorArgs\n {\n MonitorTagsFilters = \n {\n \"foo:bar\",\n },\n NameFilter = \"My awesome monitor\",\n }));\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"My awesome monitor\"\n\t\t_, err := datadog.LookupMonitor(ctx, \u0026datadog.LookupMonitorArgs{\n\t\t\tMonitorTagsFilters: []string{\n\t\t\t\t\"foo:bar\",\n\t\t\t},\n\t\t\tNameFilter: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "Use this data source to retrieve information about an existing monitor for use in other resources.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\nconst test = pulumi.output(datadog.getMonitor({\n monitorTagsFilters: [\"foo:bar\"],\n nameFilter: \"My awesome monitor\",\n}, { async: true }));\n```\n```python\nimport pulumi\nimport pulumi_datadog as datadog\n\ntest = datadog.get_monitor(monitor_tags_filters=[\"foo:bar\"],\n name_filter=\"My awesome monitor\")\n```\n```csharp\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var test = Output.Create(Datadog.GetMonitor.InvokeAsync(new Datadog.GetMonitorArgs\n {\n MonitorTagsFilters = \n {\n \"foo:bar\",\n },\n NameFilter = \"My awesome monitor\",\n }));\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := \"My awesome monitor\"\n\t\t_, err := datadog.LookupMonitor(ctx, \u0026datadog.LookupMonitorArgs{\n\t\t\tMonitorTagsFilters: []string{\n\t\t\t\t\"foo:bar\",\n\t\t\t},\n\t\t\tNameFilter: \u0026opt0,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n## Schema\n\n### Optional\n\n- **id** (String) The ID of this resource.\n- **monitor_tags_filter** (List of String) A list of monitor tags to limit the search. This filters on the tags set on the monitor itself.\n- **name_filter** (String) A monitor name to limit the search.\n- **tags_filter** (List of String) A list of tags to limit the search. This filters on the monitor scope.\n\n### Read-only\n\n- **enable_logs_sample** (Boolean) Whether or not a list of log values which triggered the alert is included. This is only used by log monitors.\n- **escalation_message** (String) Message included with a re-notification for this monitor.\n- **evaluation_delay** (Number) Time (in seconds) for which evaluation is delayed. This is only used by metric monitors.\n- **include_tags** (Boolean) Whether or not notifications from the monitor automatically inserts its triggering tags into the title.\n- **locked** (Boolean) Whether or not changes to the monitor are restricted to the creator or admins.\n- **message** (String) Message included with notifications for this monitor\n- **monitor_threshold_windows** (List of Object) Mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. This is only used by anomaly monitors. (see below for nested schema)\n- **monitor_thresholds** (List of Object) Alert thresholds of the monitor. (see below for nested schema)\n- **name** (String) Name of the monitor\n- **new_host_delay** (Number) Time (in seconds) allowing a host to boot and applications to fully start before starting the evaluation of monitor results.\n- **no_data_timeframe** (Number) The number of minutes before the monitor notifies when data stops reporting.\n- **notify_audit** (Boolean) Whether or not tagged users are notified on changes to the monitor.\n- **notify_no_data** (Boolean) Whether or not this monitor notifies when data stops reporting.\n- **query** (String) Query of the monitor.\n- **renotify_interval** (Number) The number of minutes after the last notification before the monitor re-notifies on the current status.\n- **require_full_window** (Boolean) Whether or not the monitor needs a full window of data before it is evaluated.\n- **tags** (Set of String) List of tags associated with the monitor.\n- **threshold_windows** (Map of String, Deprecated) Mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. This is only used by anomaly monitors.\n- **thresholds** (Map of String, Deprecated) Alert thresholds of the monitor.\n- **timeout_h** (Number) Number of hours of the monitor not reporting data before it automatically resolves from a triggered state.\n- **type** (String) Type of the monitor.\n\n\u003ca id=\"nestedatt--monitor_threshold_windows\"\u003e\u003c/a\u003e\n### Nested Schema for `monitor_threshold_windows`\n\nRead-only:\n\n- **recovery_window** (String)\n- **trigger_window** (String)\n\n\n\u003ca id=\"nestedatt--monitor_thresholds\"\u003e\u003c/a\u003e\n### Nested Schema for `monitor_thresholds`\n\nRead-only:\n\n- **critical** (String)\n- **critical_recovery** (String)\n- **ok** (String)\n- **unknown** (String)\n- **warning** (String)\n- **warning_recovery** (String)\n", "inputs": { "description": "A collection of arguments for invoking getMonitor.\n", "properties": { @@ -35519,6 +36150,12 @@ "type": "string" } }, + "monitorThresholdWindows": { + "$ref": "#/types/datadog:index/getMonitorMonitorThresholdWindows:getMonitorMonitorThresholdWindows" + }, + "monitorThresholds": { + "$ref": "#/types/datadog:index/getMonitorMonitorThresholds:getMonitorMonitorThresholds" + }, "name": { "type": "string" }, @@ -35559,10 +36196,12 @@ } }, "thresholdWindows": { - "$ref": "#/types/datadog:index/getMonitorThresholdWindows:getMonitorThresholdWindows" + "$ref": "#/types/datadog:index/getMonitorThresholdWindows:getMonitorThresholdWindows", + "deprecationMessage": "Define `monitor_threshold_windows` list with one element instead." }, "thresholds": { - "$ref": "#/types/datadog:index/getMonitorThresholds:getMonitorThresholds" + "$ref": "#/types/datadog:index/getMonitorThresholds:getMonitorThresholds", + "deprecationMessage": "Define `monitor_thresholds` list with one element instead." }, "timeoutH": { "type": "integer" @@ -35579,6 +36218,8 @@ "includeTags", "locked", "message", + "monitorThresholdWindows", + "monitorThresholds", "name", "newHostDelay", "noDataTimeframe", diff --git a/provider/go.mod b/provider/go.mod index 187c7136a..e349ab634 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -13,5 +13,5 @@ replace ( github.com/Azure/go-autorest => github.com/Azure/go-autorest v12.4.3+incompatible github.com/hashicorp/terraform-plugin-test => github.com/hashicorp/terraform-plugin-test v1.3.0 github.com/hashicorp/vault => github.com/hashicorp/vault v1.2.0 - github.com/terraform-providers/terraform-provider-datadog => github.com/pulumi/terraform-provider-datadog v1.9.1-0.20210108131344-36d351feea48 + github.com/terraform-providers/terraform-provider-datadog => github.com/pulumi/terraform-provider-datadog v1.9.1-0.20210121171829-8db8ba834ec7 ) diff --git a/provider/go.sum b/provider/go.sum index 7cc269c1c..c33cc27c5 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -80,8 +80,8 @@ github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6L github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DataDog/datadog-api-client-go v1.0.0-beta.13 h1:2g9CVf8r9VZoVFq87+7hZzh0fQrIWyTLfeRxkmA4R6U= -github.com/DataDog/datadog-api-client-go v1.0.0-beta.13/go.mod h1:/bMeu+q33QzX2JuO5PkGkhU1VYOXIXKEPF6Ck4yR06M= +github.com/DataDog/datadog-api-client-go v1.0.0-beta.13.0.20210115171905-69e9326f02b2 h1:w/oz5uzYPjfcKvo4gYbohBuv6+TDInUWujqKMm7e2n0= +github.com/DataDog/datadog-api-client-go v1.0.0-beta.13.0.20210115171905-69e9326f02b2/go.mod h1:/bMeu+q33QzX2JuO5PkGkhU1VYOXIXKEPF6Ck4yR06M= github.com/DataDog/datadog-go v3.6.0+incompatible h1:ILg7c5Y1KvZFDOaVS0higGmJ5Fal5O1KQrkrT9j6dSM= github.com/DataDog/datadog-go v3.6.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20191009163259-e802c2cb94ae/go.mod h1:mjwGPas4yKduTyubHvD1Atl9r1rUq8DfVy+gkVvZ+oo= @@ -540,8 +540,6 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/pulumi/pulumi-terraform-bridge/v2 v2.15.3 h1:UzyIyVjZ7O3qacxgKbZugxrD1jZ6kCSuqq592c1iAGE= -github.com/pulumi/pulumi-terraform-bridge/v2 v2.15.3/go.mod h1:XQza50xY2T2b+FkrAKQeLj6sREwDzdrhvjR3eSo2Gys= github.com/pulumi/pulumi-terraform-bridge/v2 v2.17.0 h1:QIlM45O+pD2oKJdcvmpom7CHZpC2GOjWpIA2j3QXscU= github.com/pulumi/pulumi-terraform-bridge/v2 v2.17.0/go.mod h1:/oSHj3Hg9zd8xT2dKVoBifeBbH+/pLPqmTDypgN5FHk= github.com/pulumi/pulumi/pkg/v2 v2.15.1-0.20201202214525-260620430c4c h1:M4BMhdOt1le+7JtOhR7uOVrpvu9HnN9388AI/Je9/3Y= @@ -553,8 +551,8 @@ github.com/pulumi/pulumi/sdk/v2 v2.17.0 h1:mFsYS4Qnpk0uGcN4cGPd/S6KWdx92BbudOerx github.com/pulumi/pulumi/sdk/v2 v2.17.0/go.mod h1:fCFhRV6NmidWetmgDPA76efL+s0JqLlS54JJIwfOt+o= github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e h1:Dik4Qe/+xguB8JagPyXNlbOnRiXGmq/PSPQTGunYnTk= github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ= -github.com/pulumi/terraform-provider-datadog v1.9.1-0.20210108131344-36d351feea48 h1:9DDGW5A7wGJoQ3YvPmLyV/2hnT9b7Zge38tOFpRdsEI= -github.com/pulumi/terraform-provider-datadog v1.9.1-0.20210108131344-36d351feea48/go.mod h1:Qo4bf7CjT4SE8+/8UPj+JpTITeRLYlMF3zDzK/CFZA0= +github.com/pulumi/terraform-provider-datadog v1.9.1-0.20210121171829-8db8ba834ec7 h1:thhcWa3Jp0OJYO6z/QNF2+ZKJ5zutPkW1pbtIqE7z/g= +github.com/pulumi/terraform-provider-datadog v1.9.1-0.20210121171829-8db8ba834ec7/go.mod h1:J/9r/k2zYjCgC0iJAGr0AG4CDTjj7mqc0VQw5zqQbhc= github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= diff --git a/provider/resources.go b/provider/resources.go index 1805ad632..965bb63d1 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -97,6 +97,7 @@ func Provider() tfbridge.ProviderInfo { "datadog_service_level_objective": {Tok: makeResource(datadogMod, "ServiceLevelObjective")}, "datadog_logs_custom_pipeline": {Tok: makeResource(datadogMod, "LogsCustomPipeline")}, "datadog_logs_index": {Tok: makeResource(datadogMod, "LogsIndex")}, + "datadog_logs_metric": {Tok: makeResource(datadogMod, "LogsMetric")}, "datadog_logs_archive": {Tok: makeResource(datadogMod, "LogsArchive")}, "datadog_logs_index_order": {Tok: makeResource(datadogMod, "LogsIndexOrder")}, "datadog_logs_integration_pipeline": {Tok: makeResource(datadogMod, "LogsIntegrationPipeline")}, diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index 4d2104002..64a0056d3 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -14,9 +14,9 @@ public static class Config public static string? ApiKey { get; set; } = __config.Get("apiKey") ?? Utilities.GetEnv("DATADOG_API_KEY"); /// - /// The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the - /// /api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And - /// if you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. + /// The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/ + /// path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if + /// you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. /// public static string? ApiUrl { get; set; } = __config.Get("apiUrl") ?? Utilities.GetEnv("DATADOG_HOST"); @@ -27,7 +27,7 @@ public static class Config /// /// Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key - /// and app_keywon't be checked. + /// and app_key won't be checked. /// public static bool? Validate { get; set; } = __config.GetBoolean("validate"); diff --git a/sdk/dotnet/GetMonitor.cs b/sdk/dotnet/GetMonitor.cs index df7ed9133..9c3ca8e95 100644 --- a/sdk/dotnet/GetMonitor.cs +++ b/sdk/dotnet/GetMonitor.cs @@ -40,6 +40,59 @@ public static class GetMonitor /// ``` /// {{% /example %}} /// {{% /examples %}} + /// ## Schema + /// + /// ### Optional + /// + /// - **id** (String) The ID of this resource. + /// - **monitor_tags_filter** (List of String) A list of monitor tags to limit the search. This filters on the tags set on the monitor itself. + /// - **name_filter** (String) A monitor name to limit the search. + /// - **tags_filter** (List of String) A list of tags to limit the search. This filters on the monitor scope. + /// + /// ### Read-only + /// + /// - **enable_logs_sample** (Boolean) Whether or not a list of log values which triggered the alert is included. This is only used by log monitors. + /// - **escalation_message** (String) Message included with a re-notification for this monitor. + /// - **evaluation_delay** (Number) Time (in seconds) for which evaluation is delayed. This is only used by metric monitors. + /// - **include_tags** (Boolean) Whether or not notifications from the monitor automatically inserts its triggering tags into the title. + /// - **locked** (Boolean) Whether or not changes to the monitor are restricted to the creator or admins. + /// - **message** (String) Message included with notifications for this monitor + /// - **monitor_threshold_windows** (List of Object) Mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. This is only used by anomaly monitors. (see below for nested schema) + /// - **monitor_thresholds** (List of Object) Alert thresholds of the monitor. (see below for nested schema) + /// - **name** (String) Name of the monitor + /// - **new_host_delay** (Number) Time (in seconds) allowing a host to boot and applications to fully start before starting the evaluation of monitor results. + /// - **no_data_timeframe** (Number) The number of minutes before the monitor notifies when data stops reporting. + /// - **notify_audit** (Boolean) Whether or not tagged users are notified on changes to the monitor. + /// - **notify_no_data** (Boolean) Whether or not this monitor notifies when data stops reporting. + /// - **query** (String) Query of the monitor. + /// - **renotify_interval** (Number) The number of minutes after the last notification before the monitor re-notifies on the current status. + /// - **require_full_window** (Boolean) Whether or not the monitor needs a full window of data before it is evaluated. + /// - **tags** (Set of String) List of tags associated with the monitor. + /// - **threshold_windows** (Map of String, Deprecated) Mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. This is only used by anomaly monitors. + /// - **thresholds** (Map of String, Deprecated) Alert thresholds of the monitor. + /// - **timeout_h** (Number) Number of hours of the monitor not reporting data before it automatically resolves from a triggered state. + /// - **type** (String) Type of the monitor. + /// + /// <a id="nestedatt--monitor_threshold_windows"></a> + /// ### Nested Schema for `monitor_threshold_windows` + /// + /// Read-only: + /// + /// - **recovery_window** (String) + /// - **trigger_window** (String) + /// + /// + /// <a id="nestedatt--monitor_thresholds"></a> + /// ### Nested Schema for `monitor_thresholds` + /// + /// Read-only: + /// + /// - **critical** (String) + /// - **critical_recovery** (String) + /// - **ok** (String) + /// - **unknown** (String) + /// - **warning** (String) + /// - **warning_recovery** (String) /// public static Task InvokeAsync(GetMonitorArgs? args = null, InvokeOptions? options = null) => Pulumi.Deployment.Instance.InvokeAsync("datadog:index/getMonitor:getMonitor", args ?? new GetMonitorArgs(), options.WithVersion()); @@ -87,6 +140,8 @@ public sealed class GetMonitorResult public readonly bool Locked; public readonly string Message; public readonly ImmutableArray MonitorTagsFilters; + public readonly Outputs.GetMonitorMonitorThresholdWindowsResult MonitorThresholdWindows; + public readonly Outputs.GetMonitorMonitorThresholdsResult MonitorThresholds; public readonly string Name; public readonly string? NameFilter; public readonly int NewHostDelay; @@ -121,6 +176,10 @@ private GetMonitorResult( ImmutableArray monitorTagsFilters, + Outputs.GetMonitorMonitorThresholdWindowsResult monitorThresholdWindows, + + Outputs.GetMonitorMonitorThresholdsResult monitorThresholds, + string name, string? nameFilter, @@ -159,6 +218,8 @@ private GetMonitorResult( Locked = locked; Message = message; MonitorTagsFilters = monitorTagsFilters; + MonitorThresholdWindows = monitorThresholdWindows; + MonitorThresholds = monitorThresholds; Name = name; NameFilter = nameFilter; NewHostDelay = newHostDelay; diff --git a/sdk/dotnet/Inputs/DashboardWidgetArgs.cs b/sdk/dotnet/Inputs/DashboardWidgetArgs.cs index 6c2c7c6e6..2a0464c85 100644 --- a/sdk/dotnet/Inputs/DashboardWidgetArgs.cs +++ b/sdk/dotnet/Inputs/DashboardWidgetArgs.cs @@ -45,6 +45,9 @@ public sealed class DashboardWidgetArgs : Pulumi.ResourceArgs [Input("hostmapDefinition")] public Input? HostmapDefinition { get; set; } + [Input("id")] + public Input? Id { get; set; } + [Input("iframeDefinition")] public Input? IframeDefinition { get; set; } diff --git a/sdk/dotnet/Inputs/DashboardWidgetGetArgs.cs b/sdk/dotnet/Inputs/DashboardWidgetGetArgs.cs index e1939485b..83551701b 100644 --- a/sdk/dotnet/Inputs/DashboardWidgetGetArgs.cs +++ b/sdk/dotnet/Inputs/DashboardWidgetGetArgs.cs @@ -45,6 +45,9 @@ public sealed class DashboardWidgetGetArgs : Pulumi.ResourceArgs [Input("hostmapDefinition")] public Input? HostmapDefinition { get; set; } + [Input("id")] + public Input? Id { get; set; } + [Input("iframeDefinition")] public Input? IframeDefinition { get; set; } diff --git a/sdk/dotnet/Inputs/DashboardWidgetGroupDefinitionWidgetArgs.cs b/sdk/dotnet/Inputs/DashboardWidgetGroupDefinitionWidgetArgs.cs index 0d9bf9388..fa799ac92 100644 --- a/sdk/dotnet/Inputs/DashboardWidgetGroupDefinitionWidgetArgs.cs +++ b/sdk/dotnet/Inputs/DashboardWidgetGroupDefinitionWidgetArgs.cs @@ -42,6 +42,9 @@ public sealed class DashboardWidgetGroupDefinitionWidgetArgs : Pulumi.ResourceAr [Input("hostmapDefinition")] public Input? HostmapDefinition { get; set; } + [Input("id")] + public Input? Id { get; set; } + [Input("iframeDefinition")] public Input? IframeDefinition { get; set; } diff --git a/sdk/dotnet/Inputs/DashboardWidgetGroupDefinitionWidgetGetArgs.cs b/sdk/dotnet/Inputs/DashboardWidgetGroupDefinitionWidgetGetArgs.cs index 470c0a27d..cfd54d18b 100644 --- a/sdk/dotnet/Inputs/DashboardWidgetGroupDefinitionWidgetGetArgs.cs +++ b/sdk/dotnet/Inputs/DashboardWidgetGroupDefinitionWidgetGetArgs.cs @@ -42,6 +42,9 @@ public sealed class DashboardWidgetGroupDefinitionWidgetGetArgs : Pulumi.Resourc [Input("hostmapDefinition")] public Input? HostmapDefinition { get; set; } + [Input("id")] + public Input? Id { get; set; } + [Input("iframeDefinition")] public Input? IframeDefinition { get; set; } diff --git a/sdk/dotnet/Inputs/LogsArchiveAzureArchiveArgs.cs b/sdk/dotnet/Inputs/LogsArchiveAzureArchiveArgs.cs new file mode 100644 index 000000000..833b51f8b --- /dev/null +++ b/sdk/dotnet/Inputs/LogsArchiveAzureArchiveArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsArchiveAzureArchiveArgs : Pulumi.ResourceArgs + { + [Input("clientId", required: true)] + public Input ClientId { get; set; } = null!; + + [Input("container", required: true)] + public Input Container { get; set; } = null!; + + [Input("path")] + public Input? Path { get; set; } + + [Input("storageAccount", required: true)] + public Input StorageAccount { get; set; } = null!; + + [Input("tenantId", required: true)] + public Input TenantId { get; set; } = null!; + + public LogsArchiveAzureArchiveArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsArchiveAzureArchiveGetArgs.cs b/sdk/dotnet/Inputs/LogsArchiveAzureArchiveGetArgs.cs new file mode 100644 index 000000000..33b7e5e47 --- /dev/null +++ b/sdk/dotnet/Inputs/LogsArchiveAzureArchiveGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsArchiveAzureArchiveGetArgs : Pulumi.ResourceArgs + { + [Input("clientId", required: true)] + public Input ClientId { get; set; } = null!; + + [Input("container", required: true)] + public Input Container { get; set; } = null!; + + [Input("path")] + public Input? Path { get; set; } + + [Input("storageAccount", required: true)] + public Input StorageAccount { get; set; } = null!; + + [Input("tenantId", required: true)] + public Input TenantId { get; set; } = null!; + + public LogsArchiveAzureArchiveGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsArchiveGcsArchiveArgs.cs b/sdk/dotnet/Inputs/LogsArchiveGcsArchiveArgs.cs new file mode 100644 index 000000000..2eff5d0ef --- /dev/null +++ b/sdk/dotnet/Inputs/LogsArchiveGcsArchiveArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsArchiveGcsArchiveArgs : Pulumi.ResourceArgs + { + [Input("bucket", required: true)] + public Input Bucket { get; set; } = null!; + + [Input("clientEmail", required: true)] + public Input ClientEmail { get; set; } = null!; + + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + public LogsArchiveGcsArchiveArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsArchiveGcsArchiveGetArgs.cs b/sdk/dotnet/Inputs/LogsArchiveGcsArchiveGetArgs.cs new file mode 100644 index 000000000..65be74f9b --- /dev/null +++ b/sdk/dotnet/Inputs/LogsArchiveGcsArchiveGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsArchiveGcsArchiveGetArgs : Pulumi.ResourceArgs + { + [Input("bucket", required: true)] + public Input Bucket { get; set; } = null!; + + [Input("clientEmail", required: true)] + public Input ClientEmail { get; set; } = null!; + + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + [Input("projectId", required: true)] + public Input ProjectId { get; set; } = null!; + + public LogsArchiveGcsArchiveGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsArchiveS3ArchiveArgs.cs b/sdk/dotnet/Inputs/LogsArchiveS3ArchiveArgs.cs new file mode 100644 index 000000000..3c0dfb793 --- /dev/null +++ b/sdk/dotnet/Inputs/LogsArchiveS3ArchiveArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsArchiveS3ArchiveArgs : Pulumi.ResourceArgs + { + [Input("accountId", required: true)] + public Input AccountId { get; set; } = null!; + + [Input("bucket", required: true)] + public Input Bucket { get; set; } = null!; + + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + [Input("roleName", required: true)] + public Input RoleName { get; set; } = null!; + + public LogsArchiveS3ArchiveArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsArchiveS3ArchiveGetArgs.cs b/sdk/dotnet/Inputs/LogsArchiveS3ArchiveGetArgs.cs new file mode 100644 index 000000000..d2af9f006 --- /dev/null +++ b/sdk/dotnet/Inputs/LogsArchiveS3ArchiveGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsArchiveS3ArchiveGetArgs : Pulumi.ResourceArgs + { + [Input("accountId", required: true)] + public Input AccountId { get; set; } = null!; + + [Input("bucket", required: true)] + public Input Bucket { get; set; } = null!; + + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + [Input("roleName", required: true)] + public Input RoleName { get; set; } = null!; + + public LogsArchiveS3ArchiveGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsArchiveS3Args.cs b/sdk/dotnet/Inputs/LogsArchiveS3Args.cs index fab151e93..1201ce47a 100644 --- a/sdk/dotnet/Inputs/LogsArchiveS3Args.cs +++ b/sdk/dotnet/Inputs/LogsArchiveS3Args.cs @@ -18,15 +18,9 @@ public sealed class LogsArchiveS3Args : Pulumi.ResourceArgs [Input("bucket", required: true)] public Input Bucket { get; set; } = null!; - [Input("clientEmail", required: true)] - public Input ClientEmail { get; set; } = null!; - [Input("path", required: true)] public Input Path { get; set; } = null!; - [Input("projectId", required: true)] - public Input ProjectId { get; set; } = null!; - [Input("roleName", required: true)] public Input RoleName { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/LogsArchiveS3GetArgs.cs b/sdk/dotnet/Inputs/LogsArchiveS3GetArgs.cs index ad61fd689..65abe95fb 100644 --- a/sdk/dotnet/Inputs/LogsArchiveS3GetArgs.cs +++ b/sdk/dotnet/Inputs/LogsArchiveS3GetArgs.cs @@ -18,15 +18,9 @@ public sealed class LogsArchiveS3GetArgs : Pulumi.ResourceArgs [Input("bucket", required: true)] public Input Bucket { get; set; } = null!; - [Input("clientEmail", required: true)] - public Input ClientEmail { get; set; } = null!; - [Input("path", required: true)] public Input Path { get; set; } = null!; - [Input("projectId", required: true)] - public Input ProjectId { get; set; } = null!; - [Input("roleName", required: true)] public Input RoleName { get; set; } = null!; diff --git a/sdk/dotnet/Inputs/LogsMetricComputeArgs.cs b/sdk/dotnet/Inputs/LogsMetricComputeArgs.cs new file mode 100644 index 000000000..42eacf180 --- /dev/null +++ b/sdk/dotnet/Inputs/LogsMetricComputeArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsMetricComputeArgs : Pulumi.ResourceArgs + { + [Input("aggregationType", required: true)] + public Input AggregationType { get; set; } = null!; + + [Input("path")] + public Input? Path { get; set; } + + public LogsMetricComputeArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsMetricComputeGetArgs.cs b/sdk/dotnet/Inputs/LogsMetricComputeGetArgs.cs new file mode 100644 index 000000000..d9ff0136c --- /dev/null +++ b/sdk/dotnet/Inputs/LogsMetricComputeGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsMetricComputeGetArgs : Pulumi.ResourceArgs + { + [Input("aggregationType", required: true)] + public Input AggregationType { get; set; } = null!; + + [Input("path")] + public Input? Path { get; set; } + + public LogsMetricComputeGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsMetricFilterArgs.cs b/sdk/dotnet/Inputs/LogsMetricFilterArgs.cs new file mode 100644 index 000000000..a142e7ecc --- /dev/null +++ b/sdk/dotnet/Inputs/LogsMetricFilterArgs.cs @@ -0,0 +1,22 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsMetricFilterArgs : Pulumi.ResourceArgs + { + [Input("query", required: true)] + public Input Query { get; set; } = null!; + + public LogsMetricFilterArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsMetricFilterGetArgs.cs b/sdk/dotnet/Inputs/LogsMetricFilterGetArgs.cs new file mode 100644 index 000000000..68a84dba7 --- /dev/null +++ b/sdk/dotnet/Inputs/LogsMetricFilterGetArgs.cs @@ -0,0 +1,22 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsMetricFilterGetArgs : Pulumi.ResourceArgs + { + [Input("query", required: true)] + public Input Query { get; set; } = null!; + + public LogsMetricFilterGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsMetricGroupByArgs.cs b/sdk/dotnet/Inputs/LogsMetricGroupByArgs.cs new file mode 100644 index 000000000..d7f8373f3 --- /dev/null +++ b/sdk/dotnet/Inputs/LogsMetricGroupByArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsMetricGroupByArgs : Pulumi.ResourceArgs + { + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + [Input("tagName", required: true)] + public Input TagName { get; set; } = null!; + + public LogsMetricGroupByArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/LogsMetricGroupByGetArgs.cs b/sdk/dotnet/Inputs/LogsMetricGroupByGetArgs.cs new file mode 100644 index 000000000..f2314b2fd --- /dev/null +++ b/sdk/dotnet/Inputs/LogsMetricGroupByGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class LogsMetricGroupByGetArgs : Pulumi.ResourceArgs + { + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + [Input("tagName", required: true)] + public Input TagName { get; set; } = null!; + + public LogsMetricGroupByGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/MonitorMonitorThresholdWindowsArgs.cs b/sdk/dotnet/Inputs/MonitorMonitorThresholdWindowsArgs.cs new file mode 100644 index 000000000..5a1e5b361 --- /dev/null +++ b/sdk/dotnet/Inputs/MonitorMonitorThresholdWindowsArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class MonitorMonitorThresholdWindowsArgs : Pulumi.ResourceArgs + { + [Input("recoveryWindow")] + public Input? RecoveryWindow { get; set; } + + [Input("triggerWindow")] + public Input? TriggerWindow { get; set; } + + public MonitorMonitorThresholdWindowsArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/MonitorMonitorThresholdWindowsGetArgs.cs b/sdk/dotnet/Inputs/MonitorMonitorThresholdWindowsGetArgs.cs new file mode 100644 index 000000000..86188703a --- /dev/null +++ b/sdk/dotnet/Inputs/MonitorMonitorThresholdWindowsGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class MonitorMonitorThresholdWindowsGetArgs : Pulumi.ResourceArgs + { + [Input("recoveryWindow")] + public Input? RecoveryWindow { get; set; } + + [Input("triggerWindow")] + public Input? TriggerWindow { get; set; } + + public MonitorMonitorThresholdWindowsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/MonitorMonitorThresholdsArgs.cs b/sdk/dotnet/Inputs/MonitorMonitorThresholdsArgs.cs new file mode 100644 index 000000000..ffb48a5f6 --- /dev/null +++ b/sdk/dotnet/Inputs/MonitorMonitorThresholdsArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class MonitorMonitorThresholdsArgs : Pulumi.ResourceArgs + { + [Input("critical")] + public Input? Critical { get; set; } + + [Input("criticalRecovery")] + public Input? CriticalRecovery { get; set; } + + [Input("ok")] + public Input? Ok { get; set; } + + [Input("unknown")] + public Input? Unknown { get; set; } + + [Input("warning")] + public Input? Warning { get; set; } + + [Input("warningRecovery")] + public Input? WarningRecovery { get; set; } + + public MonitorMonitorThresholdsArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/MonitorMonitorThresholdsGetArgs.cs b/sdk/dotnet/Inputs/MonitorMonitorThresholdsGetArgs.cs new file mode 100644 index 000000000..4240904e6 --- /dev/null +++ b/sdk/dotnet/Inputs/MonitorMonitorThresholdsGetArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class MonitorMonitorThresholdsGetArgs : Pulumi.ResourceArgs + { + [Input("critical")] + public Input? Critical { get; set; } + + [Input("criticalRecovery")] + public Input? CriticalRecovery { get; set; } + + [Input("ok")] + public Input? Ok { get; set; } + + [Input("unknown")] + public Input? Unknown { get; set; } + + [Input("warning")] + public Input? Warning { get; set; } + + [Input("warningRecovery")] + public Input? WarningRecovery { get; set; } + + public MonitorMonitorThresholdsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/MonitorThresholdWindowsArgs.cs b/sdk/dotnet/Inputs/MonitorThresholdWindowsArgs.cs index 33404fa87..cf0ff60bc 100644 --- a/sdk/dotnet/Inputs/MonitorThresholdWindowsArgs.cs +++ b/sdk/dotnet/Inputs/MonitorThresholdWindowsArgs.cs @@ -12,15 +12,9 @@ namespace Pulumi.Datadog.Inputs public sealed class MonitorThresholdWindowsArgs : Pulumi.ResourceArgs { - /// - /// describes how long an anomalous metric must be normal before the alert recovers. - /// [Input("recoveryWindow")] public Input? RecoveryWindow { get; set; } - /// - /// describes how long a metric must be anomalous before an alert triggers. - /// [Input("triggerWindow")] public Input? TriggerWindow { get; set; } diff --git a/sdk/dotnet/Inputs/MonitorThresholdWindowsGetArgs.cs b/sdk/dotnet/Inputs/MonitorThresholdWindowsGetArgs.cs index 1c5ab0e93..f1acfaf1a 100644 --- a/sdk/dotnet/Inputs/MonitorThresholdWindowsGetArgs.cs +++ b/sdk/dotnet/Inputs/MonitorThresholdWindowsGetArgs.cs @@ -12,15 +12,9 @@ namespace Pulumi.Datadog.Inputs public sealed class MonitorThresholdWindowsGetArgs : Pulumi.ResourceArgs { - /// - /// describes how long an anomalous metric must be normal before the alert recovers. - /// [Input("recoveryWindow")] public Input? RecoveryWindow { get; set; } - /// - /// describes how long a metric must be anomalous before an alert triggers. - /// [Input("triggerWindow")] public Input? TriggerWindow { get; set; } diff --git a/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsArgs.cs b/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsArgs.cs new file mode 100644 index 000000000..f19b34b70 --- /dev/null +++ b/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsArgs.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class SyntheticsGlobalVariableParseTestOptionsArgs : Pulumi.ResourceArgs + { + [Input("field")] + public Input? Field { get; set; } + + [Input("parser", required: true)] + public Input Parser { get; set; } = null!; + + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public SyntheticsGlobalVariableParseTestOptionsArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsGetArgs.cs b/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsGetArgs.cs new file mode 100644 index 000000000..886502614 --- /dev/null +++ b/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsGetArgs.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class SyntheticsGlobalVariableParseTestOptionsGetArgs : Pulumi.ResourceArgs + { + [Input("field")] + public Input? Field { get; set; } + + [Input("parser", required: true)] + public Input Parser { get; set; } = null!; + + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public SyntheticsGlobalVariableParseTestOptionsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsParserArgs.cs b/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsParserArgs.cs new file mode 100644 index 000000000..b842e7af6 --- /dev/null +++ b/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsParserArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class SyntheticsGlobalVariableParseTestOptionsParserArgs : Pulumi.ResourceArgs + { + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + [Input("value")] + public Input? Value { get; set; } + + public SyntheticsGlobalVariableParseTestOptionsParserArgs() + { + } + } +} diff --git a/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsParserGetArgs.cs b/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsParserGetArgs.cs new file mode 100644 index 000000000..c1c690b58 --- /dev/null +++ b/sdk/dotnet/Inputs/SyntheticsGlobalVariableParseTestOptionsParserGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Inputs +{ + + public sealed class SyntheticsGlobalVariableParseTestOptionsParserGetArgs : Pulumi.ResourceArgs + { + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + [Input("value")] + public Input? Value { get; set; } + + public SyntheticsGlobalVariableParseTestOptionsParserGetArgs() + { + } + } +} diff --git a/sdk/dotnet/LogsArchive.cs b/sdk/dotnet/LogsArchive.cs index 810bc02e2..f7f2c15aa 100644 --- a/sdk/dotnet/LogsArchive.cs +++ b/sdk/dotnet/LogsArchive.cs @@ -10,12 +10,10 @@ namespace Pulumi.Datadog { /// - /// Provides a Datadog [Logs Archive API](https://docs.datadoghq.com/api/v2/logs-archives/) resource, which is used to create and manage Datadog logs archives. + /// Provides a Datadog Logs Archive API resource, which is used to create and manage Datadog logs archives. /// /// ## Example Usage /// - /// Create a Datadog logs archive: - /// /// ```csharp /// using Pulumi; /// using Datadog = Pulumi.Datadog; @@ -28,22 +26,74 @@ namespace Pulumi.Datadog /// { /// Name = "my s3 archive", /// Query = "service:myservice", - /// S3 = new Datadog.Inputs.LogsArchiveS3Args + /// S3Archive = new Datadog.Inputs.LogsArchiveS3ArchiveArgs /// { - /// Account_id = "001234567888", + /// AccountId = "001234567888", /// Bucket = "my-bucket", /// Path = "/path/foo", - /// Role_name = "my-role-name", + /// RoleName = "my-role-name", /// }, /// }); /// } /// /// } /// ``` + /// ## Schema + /// + /// ### Required + /// + /// - **name** (String, Required) Your archive name. + /// - **query** (String, Required) The archive query/filter. Logs matching this query are included in the archive. + /// + /// ### Optional + /// + /// - **azure** (Map of String, Optional, Deprecated) Definition of an azure archive. + /// - **azure_archive** (Block List, Max: 1) Definition of an azure archive. (see below for nested schema) + /// - **gcs** (Map of String, Optional, Deprecated) Definition of a GCS archive. + /// - **gcs_archive** (Block List, Max: 1) Definition of a GCS archive. (see below for nested schema) + /// - **id** (String, Optional) The ID of this resource. + /// - **include_tags** (Boolean, Optional) To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs are sent to the archive. + /// - **rehydration_tags** (List of String, Optional) An array of tags to add to rehydrated logs from an archive. + /// - **s3** (Map of String, Optional, Deprecated) Definition of an s3 archive. + /// - **s3_archive** (Block List, Max: 1) Definition of an s3 archive. (see below for nested schema) + /// + /// <a id="nestedblock--azure_archive"></a> + /// ### Nested Schema for `azure_archive` + /// + /// Required: + /// + /// - **client_id** (String, Required) Your client id. + /// - **container** (String, Required) The container where the archive will be stored. + /// - **storage_account** (String, Required) The associated storage account. + /// - **tenant_id** (String, Required) Your tenant id. + /// + /// Optional: + /// + /// - **path** (String, Optional) The path where the archive will be stored. + /// + /// <a id="nestedblock--gcs_archive"></a> + /// ### Nested Schema for `gcs_archive` + /// + /// Required: + /// + /// - **bucket** (String, Required) Name of your GCS bucket. + /// - **client_email** (String, Required) Your client email. + /// - **path** (String, Required) Path where the archive will be stored. + /// - **project_id** (String, Required) Your project id. + /// + /// <a id="nestedblock--s3_archive"></a> + /// ### Nested Schema for `s3_archive` + /// + /// Required: + /// + /// - **account_id** (String, Required) Your AWS account id. + /// - **bucket** (String, Required) Name of your s3 bucket. + /// - **path** (String, Required) Path where the archive will be stored. + /// - **role_name** (String, Required) Your AWS role name /// /// ## Import /// - /// Logs archives can be imported using their public string ID, e.g. + /// Import is supported using the following syntax /// /// ```sh /// $ pulumi import datadog:index/logsArchive:LogsArchive my_s3_archive 1Aabc2_dfQPLnXy3HlfK4hi @@ -57,12 +107,24 @@ public partial class LogsArchive : Pulumi.CustomResource [Output("azure")] public Output Azure { get; private set; } = null!; + /// + /// Definition of an azure archive. + /// + [Output("azureArchive")] + public Output AzureArchive { get; private set; } = null!; + /// /// Definition of a GCS archive. /// [Output("gcs")] public Output Gcs { get; private set; } = null!; + /// + /// Definition of a GCS archive. + /// + [Output("gcsArchive")] + public Output GcsArchive { get; private set; } = null!; + /// /// To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs /// are sent to the archive. @@ -94,6 +156,12 @@ public partial class LogsArchive : Pulumi.CustomResource [Output("s3")] public Output S3 { get; private set; } = null!; + /// + /// Definition of an s3 archive. + /// + [Output("s3Archive")] + public Output S3Archive { get; private set; } = null!; + /// /// Create a LogsArchive resource with the given unique name, arguments, and options. @@ -146,12 +214,24 @@ public sealed class LogsArchiveArgs : Pulumi.ResourceArgs [Input("azure")] public Input? Azure { get; set; } + /// + /// Definition of an azure archive. + /// + [Input("azureArchive")] + public Input? AzureArchive { get; set; } + /// /// Definition of a GCS archive. /// [Input("gcs")] public Input? Gcs { get; set; } + /// + /// Definition of a GCS archive. + /// + [Input("gcsArchive")] + public Input? GcsArchive { get; set; } + /// /// To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs /// are sent to the archive. @@ -189,6 +269,12 @@ public InputList RehydrationTags [Input("s3")] public Input? S3 { get; set; } + /// + /// Definition of an s3 archive. + /// + [Input("s3Archive")] + public Input? S3Archive { get; set; } + public LogsArchiveArgs() { } @@ -202,12 +288,24 @@ public sealed class LogsArchiveState : Pulumi.ResourceArgs [Input("azure")] public Input? Azure { get; set; } + /// + /// Definition of an azure archive. + /// + [Input("azureArchive")] + public Input? AzureArchive { get; set; } + /// /// Definition of a GCS archive. /// [Input("gcs")] public Input? Gcs { get; set; } + /// + /// Definition of a GCS archive. + /// + [Input("gcsArchive")] + public Input? GcsArchive { get; set; } + /// /// To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs /// are sent to the archive. @@ -245,6 +343,12 @@ public InputList RehydrationTags [Input("s3")] public Input? S3 { get; set; } + /// + /// Definition of an s3 archive. + /// + [Input("s3Archive")] + public Input? S3Archive { get; set; } + public LogsArchiveState() { } diff --git a/sdk/dotnet/LogsMetric.cs b/sdk/dotnet/LogsMetric.cs new file mode 100644 index 000000000..350547ec5 --- /dev/null +++ b/sdk/dotnet/LogsMetric.cs @@ -0,0 +1,240 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog +{ + /// + /// Resource for interacting with the logs_metric API + /// + /// ## Example Usage + /// + /// ```csharp + /// using Pulumi; + /// using Datadog = Pulumi.Datadog; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var testingLogsMetric = new Datadog.LogsMetric("testingLogsMetric", new Datadog.LogsMetricArgs + /// { + /// Compute = new Datadog.Inputs.LogsMetricComputeArgs + /// { + /// AggregationType = "distribution", + /// Path = "@duration", + /// }, + /// Filter = new Datadog.Inputs.LogsMetricFilterArgs + /// { + /// Query = "service:test", + /// }, + /// GroupBies = + /// { + /// new Datadog.Inputs.LogsMetricGroupByArgs + /// { + /// Path = "@status", + /// TagName = "status", + /// }, + /// }, + /// Name = "testing.logs.metric", + /// }); + /// } + /// + /// } + /// ``` + /// ## Schema + /// + /// ### Required + /// + /// - **compute** (Block List, Min: 1, Max: 1) The compute rule to compute the log-based metric. This field can't be updated after creation. (see below for nested schema) + /// - **filter** (Block List, Min: 1, Max: 1) The log-based metric filter. Logs matching this filter will be aggregated in this metric. (see below for nested schema) + /// - **name** (String, Required) The name of the log-based metric. This field can't be updated after creation. + /// + /// ### Optional + /// + /// - **group_by** (Block List) The rules for the group by. (see below for nested schema) + /// - **id** (String, Optional) The ID of this resource. + /// + /// <a id="nestedblock--compute"></a> + /// ### Nested Schema for `compute` + /// + /// Required: + /// + /// - **aggregation_type** (String, Required) The type of aggregation to use. This field can't be updated after creation. + /// + /// Optional: + /// + /// - **path** (String, Optional) The path to the value the log-based metric will aggregate on (only used if the aggregation type is a "distribution"). This field can't be updated after creation. + /// + /// <a id="nestedblock--filter"></a> + /// ### Nested Schema for `filter` + /// + /// Required: + /// + /// - **query** (String, Required) The search query - following the log search syntax. + /// + /// <a id="nestedblock--group_by"></a> + /// ### Nested Schema for `group_by` + /// + /// Required: + /// + /// - **path** (String, Required) The path to the value the log-based metric will be aggregated over. + /// - **tag_name** (String, Required) Name of the tag that gets created. + /// + /// ## Import + /// + /// Import is supported using the following syntax + /// + /// ```sh + /// $ pulumi import datadog:index/logsMetric:LogsMetric testing_logs_metric testing.logs.metric + /// ``` + /// + public partial class LogsMetric : Pulumi.CustomResource + { + /// + /// The compute rule to compute the log-based metric. This field can't be updated after creation. + /// + [Output("compute")] + public Output Compute { get; private set; } = null!; + + /// + /// The log-based metric filter. Logs matching this filter will be aggregated in this metric. + /// + [Output("filter")] + public Output Filter { get; private set; } = null!; + + /// + /// The rules for the group by. + /// + [Output("groupBies")] + public Output> GroupBies { get; private set; } = null!; + + /// + /// The name of the log-based metric. This field can't be updated after creation. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + + /// + /// Create a LogsMetric resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public LogsMetric(string name, LogsMetricArgs args, CustomResourceOptions? options = null) + : base("datadog:index/logsMetric:LogsMetric", name, args ?? new LogsMetricArgs(), MakeResourceOptions(options, "")) + { + } + + private LogsMetric(string name, Input id, LogsMetricState? state = null, CustomResourceOptions? options = null) + : base("datadog:index/logsMetric:LogsMetric", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing LogsMetric resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static LogsMetric Get(string name, Input id, LogsMetricState? state = null, CustomResourceOptions? options = null) + { + return new LogsMetric(name, id, state, options); + } + } + + public sealed class LogsMetricArgs : Pulumi.ResourceArgs + { + /// + /// The compute rule to compute the log-based metric. This field can't be updated after creation. + /// + [Input("compute", required: true)] + public Input Compute { get; set; } = null!; + + /// + /// The log-based metric filter. Logs matching this filter will be aggregated in this metric. + /// + [Input("filter", required: true)] + public Input Filter { get; set; } = null!; + + [Input("groupBies")] + private InputList? _groupBies; + + /// + /// The rules for the group by. + /// + public InputList GroupBies + { + get => _groupBies ?? (_groupBies = new InputList()); + set => _groupBies = value; + } + + /// + /// The name of the log-based metric. This field can't be updated after creation. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public LogsMetricArgs() + { + } + } + + public sealed class LogsMetricState : Pulumi.ResourceArgs + { + /// + /// The compute rule to compute the log-based metric. This field can't be updated after creation. + /// + [Input("compute")] + public Input? Compute { get; set; } + + /// + /// The log-based metric filter. Logs matching this filter will be aggregated in this metric. + /// + [Input("filter")] + public Input? Filter { get; set; } + + [Input("groupBies")] + private InputList? _groupBies; + + /// + /// The rules for the group by. + /// + public InputList GroupBies + { + get => _groupBies ?? (_groupBies = new InputList()); + set => _groupBies = value; + } + + /// + /// The name of the log-based metric. This field can't be updated after creation. + /// + [Input("name")] + public Input? Name { get; set; } + + public LogsMetricState() + { + } + } +} diff --git a/sdk/dotnet/Monitor.cs b/sdk/dotnet/Monitor.cs index 5767a2acf..09a5f6bda 100644 --- a/sdk/dotnet/Monitor.cs +++ b/sdk/dotnet/Monitor.cs @@ -10,100 +10,9 @@ namespace Pulumi.Datadog { /// - /// Provides a Datadog monitor resource. This can be used to create and manage Datadog monitors. - /// - /// ## Example Usage - /// - /// ```csharp - /// using Pulumi; - /// using Datadog = Pulumi.Datadog; - /// - /// class MyStack : Stack - /// { - /// public MyStack() - /// { - /// // Create a new Datadog monitor - /// var foo = new Datadog.Monitor("foo", new Datadog.MonitorArgs - /// { - /// Name = "Name for monitor foo", - /// Type = "metric alert", - /// Message = "Monitor triggered. Notify: @hipchat-channel", - /// EscalationMessage = "Escalation message @pagerduty", - /// Query = "avg(last_1h):avg:aws.ec2.cpu{environment:foo,host:foo} by {host} > 4", - /// Thresholds = new Datadog.Inputs.MonitorThresholdsArgs - /// { - /// Warning = 2, - /// Warning_recovery = 1, - /// Critical = 4, - /// Critical_recovery = 3, - /// }, - /// NotifyNoData = false, - /// RenotifyInterval = 60, - /// NotifyAudit = false, - /// TimeoutH = 60, - /// IncludeTags = true, - /// Tags = - /// { - /// "foo:bar", - /// "baz", - /// }, - /// }); - /// } - /// - /// } - /// ``` - /// ## Silencing by Hand and by Downtimes - /// - /// There are two ways how to silence a single monitor: - /// - /// - Mute it by hand - /// - Create a Downtime - /// - /// Both of these actions add a new value to the `silenced` map. This can be problematic if the `silenced` attribute doesn't contain them in your application, as they would be removed on next `pulumi up` invocation. In order to prevent that from happening, you can add following to your monitor: - /// - /// ```csharp - /// using Pulumi; - /// - /// class MyStack : Stack - /// { - /// public MyStack() - /// { - /// } - /// - /// } - /// ``` - /// - /// The above will make sure that any changes to the `silenced` attribute are ignored. - /// - /// This issue doesn't apply to multi-monitor downtimes (those that don't contain `monitor_id` ), as these don't influence contents of the `silenced` attribute. - /// - /// ## Composite Monitors - /// - /// You can compose monitors of all types in order to define more specific alert conditions (see the [doc](https://docs.datadoghq.com/monitors/monitor_types/composite/)). You just need to reuse the ID of your `datadog.Monitor` resources. You can also compose any monitor with a `datadog.SyntheticsTest` by passing the computed `monitor_id` attribute in the query. - /// - /// ```csharp - /// using Pulumi; - /// using Datadog = Pulumi.Datadog; - /// - /// class MyStack : Stack - /// { - /// public MyStack() - /// { - /// var bar = new Datadog.Monitor("bar", new Datadog.MonitorArgs - /// { - /// Message = "This is a message", - /// Name = "Composite Monitor", - /// Query = $"{datadog_monitor.Foo.Id} || {datadog_synthetics_test.Foo.Monitor_id}", - /// Type = "composite", - /// }); - /// } - /// - /// } - /// ``` - /// /// ## Import /// - /// Monitors can be imported using their numeric ID, e.g. console + /// Import is supported using the following syntax /// /// ```sh /// $ pulumi import datadog:index/monitor:Monitor bytes_received_localhost 2081 @@ -112,7 +21,8 @@ namespace Pulumi.Datadog public partial class Monitor : Pulumi.CustomResource { /// - /// A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + /// A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + /// monitors. Defaults to `false`. /// [Output("enableLogsSample")] public Output EnableLogsSample { get; private set; } = null!; @@ -124,25 +34,31 @@ public partial class Monitor : Pulumi.CustomResource public Output EscalationMessage { get; private set; } = null!; /// - /// Time (in seconds) to delay evaluation, as a non-negative integer. + /// (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + /// value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + /// from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + /// data during evaluation. /// [Output("evaluationDelay")] public Output EvaluationDelay { get; private set; } = null!; /// - /// A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + /// A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + /// composite monitor). /// [Output("forceDelete")] public Output ForceDelete { get; private set; } = null!; /// - /// A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + /// A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + /// Defaults to `true`. /// [Output("includeTags")] public Output IncludeTags { get; private set; } = null!; /// - /// A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + /// A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + /// `false`. /// [Output("locked")] public Output Locked { get; private set; } = null!; @@ -154,6 +70,19 @@ public partial class Monitor : Pulumi.CustomResource [Output("message")] public Output Message { get; private set; } = null!; + /// + /// A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + /// required for, anomaly monitors. + /// + [Output("monitorThresholdWindows")] + public Output MonitorThresholdWindows { get; private set; } = null!; + + /// + /// Alert thresholds of the monitor. + /// + [Output("monitorThresholds")] + public Output MonitorThresholds { get; private set; } = null!; + /// /// Name of Datadog monitor. /// @@ -161,32 +90,31 @@ public partial class Monitor : Pulumi.CustomResource public Output Name { get; private set; } = null!; /// - /// Time (in seconds) to allow a host to boot and + /// Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + /// results. Should be a non negative integer. Defaults to `300`. /// [Output("newHostDelay")] public Output NewHostDelay { get; private set; } = null!; /// - /// The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + /// The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + /// recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. /// [Output("noDataTimeframe")] public Output NoDataTimeframe { get; private set; } = null!; /// - /// A boolean indicating whether tagged users will be notified on changes to this monitor. + /// A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. /// [Output("notifyAudit")] public Output NotifyAudit { get; private set; } = null!; /// - /// A boolean indicating whether this monitor will notify when data stops reporting. Defaults + /// A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. /// [Output("notifyNoData")] public Output NotifyNoData { get; private set; } = null!; - /// - /// Integer from 1 (high) to 5 (low) indicating alert severity. - /// [Output("priority")] public Output Priority { get; private set; } = null!; @@ -199,54 +127,65 @@ public partial class Monitor : Pulumi.CustomResource public Output Query { get; private set; } = null!; /// - /// The number of minutes after the last notification before a monitor will re-notify + /// The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + /// re-notify if it's not resolved. /// [Output("renotifyInterval")] public Output RenotifyInterval { get; private set; } = null!; /// - /// A boolean indicating whether this monitor needs a full window of data before it's evaluated. + /// A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + /// this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + /// times` and `in total` aggregation. `false` otherwise. /// [Output("requireFullWindow")] public Output RequireFullWindow { get; private set; } = null!; /// - /// Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + /// Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + /// the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + /// removed in the next major version of the Terraform Provider. /// [Output("silenced")] public Output?> Silenced { get; private set; } = null!; /// - /// A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + /// A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + /// page of the UI. Note: it's not currently possible to filter by these tags when querying via the API /// [Output("tags")] public Output> Tags { get; private set; } = null!; /// - /// A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are required for, anomaly monitors. + /// A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + /// required for, anomaly monitors. /// [Output("thresholdWindows")] public Output ThresholdWindows { get; private set; } = null!; + /// + /// Alert thresholds of the monitor. + /// [Output("thresholds")] public Output Thresholds { get; private set; } = null!; /// - /// The number of hours of the monitor not reporting data before it will automatically resolve + /// The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + /// Defaults to `false`. /// [Output("timeoutH")] public Output TimeoutH { get; private set; } = null!; /// /// The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - /// Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - /// are below. Note: The monitor type cannot be changed after a monitor is created. + /// Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + /// cannot be changed after a monitor is created. /// [Output("type")] public Output Type { get; private set; } = null!; /// - /// If set to false, skip the validation call done during `plan` . + /// If set to `false`, skip the validation call done during plan. /// [Output("validate")] public Output Validate { get; private set; } = null!; @@ -298,7 +237,8 @@ public static Monitor Get(string name, Input id, MonitorState? state = n public sealed class MonitorArgs : Pulumi.ResourceArgs { /// - /// A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + /// A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + /// monitors. Defaults to `false`. /// [Input("enableLogsSample")] public Input? EnableLogsSample { get; set; } @@ -310,25 +250,31 @@ public sealed class MonitorArgs : Pulumi.ResourceArgs public Input? EscalationMessage { get; set; } /// - /// Time (in seconds) to delay evaluation, as a non-negative integer. + /// (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + /// value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + /// from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + /// data during evaluation. /// [Input("evaluationDelay")] public Input? EvaluationDelay { get; set; } /// - /// A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + /// A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + /// composite monitor). /// [Input("forceDelete")] public Input? ForceDelete { get; set; } /// - /// A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + /// A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + /// Defaults to `true`. /// [Input("includeTags")] public Input? IncludeTags { get; set; } /// - /// A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + /// A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + /// `false`. /// [Input("locked")] public Input? Locked { get; set; } @@ -340,6 +286,19 @@ public sealed class MonitorArgs : Pulumi.ResourceArgs [Input("message", required: true)] public Input Message { get; set; } = null!; + /// + /// A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + /// required for, anomaly monitors. + /// + [Input("monitorThresholdWindows")] + public Input? MonitorThresholdWindows { get; set; } + + /// + /// Alert thresholds of the monitor. + /// + [Input("monitorThresholds")] + public Input? MonitorThresholds { get; set; } + /// /// Name of Datadog monitor. /// @@ -347,32 +306,31 @@ public sealed class MonitorArgs : Pulumi.ResourceArgs public Input Name { get; set; } = null!; /// - /// Time (in seconds) to allow a host to boot and + /// Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + /// results. Should be a non negative integer. Defaults to `300`. /// [Input("newHostDelay")] public Input? NewHostDelay { get; set; } /// - /// The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + /// The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + /// recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. /// [Input("noDataTimeframe")] public Input? NoDataTimeframe { get; set; } /// - /// A boolean indicating whether tagged users will be notified on changes to this monitor. + /// A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. /// [Input("notifyAudit")] public Input? NotifyAudit { get; set; } /// - /// A boolean indicating whether this monitor will notify when data stops reporting. Defaults + /// A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. /// [Input("notifyNoData")] public Input? NotifyNoData { get; set; } - /// - /// Integer from 1 (high) to 5 (low) indicating alert severity. - /// [Input("priority")] public Input? Priority { get; set; } @@ -385,13 +343,16 @@ public sealed class MonitorArgs : Pulumi.ResourceArgs public Input Query { get; set; } = null!; /// - /// The number of minutes after the last notification before a monitor will re-notify + /// The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + /// re-notify if it's not resolved. /// [Input("renotifyInterval")] public Input? RenotifyInterval { get; set; } /// - /// A boolean indicating whether this monitor needs a full window of data before it's evaluated. + /// A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + /// this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + /// times` and `in total` aggregation. `false` otherwise. /// [Input("requireFullWindow")] public Input? RequireFullWindow { get; set; } @@ -400,7 +361,9 @@ public sealed class MonitorArgs : Pulumi.ResourceArgs private InputMap? _silenced; /// - /// Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + /// Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + /// the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + /// removed in the next major version of the Terraform Provider. /// [Obsolete(@"use Downtime Resource instead")] public InputMap Silenced @@ -413,7 +376,8 @@ public InputMap Silenced private InputList? _tags; /// - /// A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + /// A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + /// page of the UI. Note: it's not currently possible to filter by these tags when querying via the API /// public InputList Tags { @@ -422,30 +386,35 @@ public InputList Tags } /// - /// A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are required for, anomaly monitors. + /// A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + /// required for, anomaly monitors. /// [Input("thresholdWindows")] public Input? ThresholdWindows { get; set; } + /// + /// Alert thresholds of the monitor. + /// [Input("thresholds")] public Input? Thresholds { get; set; } /// - /// The number of hours of the monitor not reporting data before it will automatically resolve + /// The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + /// Defaults to `false`. /// [Input("timeoutH")] public Input? TimeoutH { get; set; } /// /// The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - /// Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - /// are below. Note: The monitor type cannot be changed after a monitor is created. + /// Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + /// cannot be changed after a monitor is created. /// [Input("type", required: true)] public Input Type { get; set; } = null!; /// - /// If set to false, skip the validation call done during `plan` . + /// If set to `false`, skip the validation call done during plan. /// [Input("validate")] public Input? Validate { get; set; } @@ -458,7 +427,8 @@ public MonitorArgs() public sealed class MonitorState : Pulumi.ResourceArgs { /// - /// A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + /// A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + /// monitors. Defaults to `false`. /// [Input("enableLogsSample")] public Input? EnableLogsSample { get; set; } @@ -470,25 +440,31 @@ public sealed class MonitorState : Pulumi.ResourceArgs public Input? EscalationMessage { get; set; } /// - /// Time (in seconds) to delay evaluation, as a non-negative integer. + /// (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + /// value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + /// from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + /// data during evaluation. /// [Input("evaluationDelay")] public Input? EvaluationDelay { get; set; } /// - /// A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + /// A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + /// composite monitor). /// [Input("forceDelete")] public Input? ForceDelete { get; set; } /// - /// A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + /// A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + /// Defaults to `true`. /// [Input("includeTags")] public Input? IncludeTags { get; set; } /// - /// A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + /// A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + /// `false`. /// [Input("locked")] public Input? Locked { get; set; } @@ -500,6 +476,19 @@ public sealed class MonitorState : Pulumi.ResourceArgs [Input("message")] public Input? Message { get; set; } + /// + /// A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + /// required for, anomaly monitors. + /// + [Input("monitorThresholdWindows")] + public Input? MonitorThresholdWindows { get; set; } + + /// + /// Alert thresholds of the monitor. + /// + [Input("monitorThresholds")] + public Input? MonitorThresholds { get; set; } + /// /// Name of Datadog monitor. /// @@ -507,32 +496,31 @@ public sealed class MonitorState : Pulumi.ResourceArgs public Input? Name { get; set; } /// - /// Time (in seconds) to allow a host to boot and + /// Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + /// results. Should be a non negative integer. Defaults to `300`. /// [Input("newHostDelay")] public Input? NewHostDelay { get; set; } /// - /// The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + /// The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + /// recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. /// [Input("noDataTimeframe")] public Input? NoDataTimeframe { get; set; } /// - /// A boolean indicating whether tagged users will be notified on changes to this monitor. + /// A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. /// [Input("notifyAudit")] public Input? NotifyAudit { get; set; } /// - /// A boolean indicating whether this monitor will notify when data stops reporting. Defaults + /// A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. /// [Input("notifyNoData")] public Input? NotifyNoData { get; set; } - /// - /// Integer from 1 (high) to 5 (low) indicating alert severity. - /// [Input("priority")] public Input? Priority { get; set; } @@ -545,13 +533,16 @@ public sealed class MonitorState : Pulumi.ResourceArgs public Input? Query { get; set; } /// - /// The number of minutes after the last notification before a monitor will re-notify + /// The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + /// re-notify if it's not resolved. /// [Input("renotifyInterval")] public Input? RenotifyInterval { get; set; } /// - /// A boolean indicating whether this monitor needs a full window of data before it's evaluated. + /// A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + /// this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + /// times` and `in total` aggregation. `false` otherwise. /// [Input("requireFullWindow")] public Input? RequireFullWindow { get; set; } @@ -560,7 +551,9 @@ public sealed class MonitorState : Pulumi.ResourceArgs private InputMap? _silenced; /// - /// Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + /// Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + /// the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + /// removed in the next major version of the Terraform Provider. /// [Obsolete(@"use Downtime Resource instead")] public InputMap Silenced @@ -573,7 +566,8 @@ public InputMap Silenced private InputList? _tags; /// - /// A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + /// A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + /// page of the UI. Note: it's not currently possible to filter by these tags when querying via the API /// public InputList Tags { @@ -582,30 +576,35 @@ public InputList Tags } /// - /// A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are required for, anomaly monitors. + /// A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + /// required for, anomaly monitors. /// [Input("thresholdWindows")] public Input? ThresholdWindows { get; set; } + /// + /// Alert thresholds of the monitor. + /// [Input("thresholds")] public Input? Thresholds { get; set; } /// - /// The number of hours of the monitor not reporting data before it will automatically resolve + /// The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + /// Defaults to `false`. /// [Input("timeoutH")] public Input? TimeoutH { get; set; } /// /// The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - /// Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - /// are below. Note: The monitor type cannot be changed after a monitor is created. + /// Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + /// cannot be changed after a monitor is created. /// [Input("type")] public Input? Type { get; set; } /// - /// If set to false, skip the validation call done during `plan` . + /// If set to `false`, skip the validation call done during plan. /// [Input("validate")] public Input? Validate { get; set; } diff --git a/sdk/dotnet/Outputs/DashboardWidget.cs b/sdk/dotnet/Outputs/DashboardWidget.cs index 494c41f14..e0fb7bbff 100644 --- a/sdk/dotnet/Outputs/DashboardWidget.cs +++ b/sdk/dotnet/Outputs/DashboardWidget.cs @@ -24,6 +24,7 @@ public sealed class DashboardWidget public readonly Outputs.DashboardWidgetGroupDefinition? GroupDefinition; public readonly Outputs.DashboardWidgetHeatmapDefinition? HeatmapDefinition; public readonly Outputs.DashboardWidgetHostmapDefinition? HostmapDefinition; + public readonly int? Id; public readonly Outputs.DashboardWidgetIframeDefinition? IframeDefinition; public readonly Outputs.DashboardWidgetImageDefinition? ImageDefinition; public readonly Outputs.DashboardWidgetLayout? Layout; @@ -63,6 +64,8 @@ private DashboardWidget( Outputs.DashboardWidgetHostmapDefinition? hostmapDefinition, + int? id, + Outputs.DashboardWidgetIframeDefinition? iframeDefinition, Outputs.DashboardWidgetImageDefinition? imageDefinition, @@ -102,6 +105,7 @@ private DashboardWidget( GroupDefinition = groupDefinition; HeatmapDefinition = heatmapDefinition; HostmapDefinition = hostmapDefinition; + Id = id; IframeDefinition = iframeDefinition; ImageDefinition = imageDefinition; Layout = layout; diff --git a/sdk/dotnet/Outputs/DashboardWidgetGroupDefinitionWidget.cs b/sdk/dotnet/Outputs/DashboardWidgetGroupDefinitionWidget.cs index 1698fea84..712ee9c3e 100644 --- a/sdk/dotnet/Outputs/DashboardWidgetGroupDefinitionWidget.cs +++ b/sdk/dotnet/Outputs/DashboardWidgetGroupDefinitionWidget.cs @@ -23,6 +23,7 @@ public sealed class DashboardWidgetGroupDefinitionWidget public readonly Outputs.DashboardWidgetGroupDefinitionWidgetFreeTextDefinition? FreeTextDefinition; public readonly Outputs.DashboardWidgetGroupDefinitionWidgetHeatmapDefinition? HeatmapDefinition; public readonly Outputs.DashboardWidgetGroupDefinitionWidgetHostmapDefinition? HostmapDefinition; + public readonly int? Id; public readonly Outputs.DashboardWidgetGroupDefinitionWidgetIframeDefinition? IframeDefinition; public readonly Outputs.DashboardWidgetGroupDefinitionWidgetImageDefinition? ImageDefinition; public readonly Outputs.DashboardWidgetGroupDefinitionWidgetLayout? Layout; @@ -60,6 +61,8 @@ private DashboardWidgetGroupDefinitionWidget( Outputs.DashboardWidgetGroupDefinitionWidgetHostmapDefinition? hostmapDefinition, + int? id, + Outputs.DashboardWidgetGroupDefinitionWidgetIframeDefinition? iframeDefinition, Outputs.DashboardWidgetGroupDefinitionWidgetImageDefinition? imageDefinition, @@ -98,6 +101,7 @@ private DashboardWidgetGroupDefinitionWidget( FreeTextDefinition = freeTextDefinition; HeatmapDefinition = heatmapDefinition; HostmapDefinition = hostmapDefinition; + Id = id; IframeDefinition = iframeDefinition; ImageDefinition = imageDefinition; Layout = layout; diff --git a/sdk/dotnet/Outputs/GetMonitorMonitorThresholdWindowsResult.cs b/sdk/dotnet/Outputs/GetMonitorMonitorThresholdWindowsResult.cs new file mode 100644 index 000000000..440f2ff84 --- /dev/null +++ b/sdk/dotnet/Outputs/GetMonitorMonitorThresholdWindowsResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class GetMonitorMonitorThresholdWindowsResult + { + public readonly string RecoveryWindow; + public readonly string TriggerWindow; + + [OutputConstructor] + private GetMonitorMonitorThresholdWindowsResult( + string recoveryWindow, + + string triggerWindow) + { + RecoveryWindow = recoveryWindow; + TriggerWindow = triggerWindow; + } + } +} diff --git a/sdk/dotnet/Outputs/GetMonitorMonitorThresholdsResult.cs b/sdk/dotnet/Outputs/GetMonitorMonitorThresholdsResult.cs new file mode 100644 index 000000000..b83c1824f --- /dev/null +++ b/sdk/dotnet/Outputs/GetMonitorMonitorThresholdsResult.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class GetMonitorMonitorThresholdsResult + { + public readonly string Critical; + public readonly string CriticalRecovery; + public readonly string Ok; + public readonly string Unknown; + public readonly string Warning; + public readonly string WarningRecovery; + + [OutputConstructor] + private GetMonitorMonitorThresholdsResult( + string critical, + + string criticalRecovery, + + string ok, + + string unknown, + + string warning, + + string warningRecovery) + { + Critical = critical; + CriticalRecovery = criticalRecovery; + Ok = ok; + Unknown = unknown; + Warning = warning; + WarningRecovery = warningRecovery; + } + } +} diff --git a/sdk/dotnet/Outputs/LogsArchiveAzureArchive.cs b/sdk/dotnet/Outputs/LogsArchiveAzureArchive.cs new file mode 100644 index 000000000..23fb106bf --- /dev/null +++ b/sdk/dotnet/Outputs/LogsArchiveAzureArchive.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class LogsArchiveAzureArchive + { + public readonly string ClientId; + public readonly string Container; + public readonly string? Path; + public readonly string StorageAccount; + public readonly string TenantId; + + [OutputConstructor] + private LogsArchiveAzureArchive( + string clientId, + + string container, + + string? path, + + string storageAccount, + + string tenantId) + { + ClientId = clientId; + Container = container; + Path = path; + StorageAccount = storageAccount; + TenantId = tenantId; + } + } +} diff --git a/sdk/dotnet/Outputs/LogsArchiveGcsArchive.cs b/sdk/dotnet/Outputs/LogsArchiveGcsArchive.cs new file mode 100644 index 000000000..c403c23c5 --- /dev/null +++ b/sdk/dotnet/Outputs/LogsArchiveGcsArchive.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class LogsArchiveGcsArchive + { + public readonly string Bucket; + public readonly string ClientEmail; + public readonly string Path; + public readonly string ProjectId; + + [OutputConstructor] + private LogsArchiveGcsArchive( + string bucket, + + string clientEmail, + + string path, + + string projectId) + { + Bucket = bucket; + ClientEmail = clientEmail; + Path = path; + ProjectId = projectId; + } + } +} diff --git a/sdk/dotnet/Outputs/LogsArchiveS3.cs b/sdk/dotnet/Outputs/LogsArchiveS3.cs index 433948ffe..a18bcb1fb 100644 --- a/sdk/dotnet/Outputs/LogsArchiveS3.cs +++ b/sdk/dotnet/Outputs/LogsArchiveS3.cs @@ -15,9 +15,7 @@ public sealed class LogsArchiveS3 { public readonly string AccountId; public readonly string Bucket; - public readonly string ClientEmail; public readonly string Path; - public readonly string ProjectId; public readonly string RoleName; [OutputConstructor] @@ -26,19 +24,13 @@ private LogsArchiveS3( string bucket, - string clientEmail, - string path, - string projectId, - string roleName) { AccountId = accountId; Bucket = bucket; - ClientEmail = clientEmail; Path = path; - ProjectId = projectId; RoleName = roleName; } } diff --git a/sdk/dotnet/Outputs/LogsArchiveS3Archive.cs b/sdk/dotnet/Outputs/LogsArchiveS3Archive.cs new file mode 100644 index 000000000..89a7f9e5b --- /dev/null +++ b/sdk/dotnet/Outputs/LogsArchiveS3Archive.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class LogsArchiveS3Archive + { + public readonly string AccountId; + public readonly string Bucket; + public readonly string Path; + public readonly string RoleName; + + [OutputConstructor] + private LogsArchiveS3Archive( + string accountId, + + string bucket, + + string path, + + string roleName) + { + AccountId = accountId; + Bucket = bucket; + Path = path; + RoleName = roleName; + } + } +} diff --git a/sdk/dotnet/Outputs/LogsMetricCompute.cs b/sdk/dotnet/Outputs/LogsMetricCompute.cs new file mode 100644 index 000000000..ad7b40420 --- /dev/null +++ b/sdk/dotnet/Outputs/LogsMetricCompute.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class LogsMetricCompute + { + public readonly string AggregationType; + public readonly string? Path; + + [OutputConstructor] + private LogsMetricCompute( + string aggregationType, + + string? path) + { + AggregationType = aggregationType; + Path = path; + } + } +} diff --git a/sdk/dotnet/Outputs/LogsMetricFilter.cs b/sdk/dotnet/Outputs/LogsMetricFilter.cs new file mode 100644 index 000000000..57f3ad524 --- /dev/null +++ b/sdk/dotnet/Outputs/LogsMetricFilter.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class LogsMetricFilter + { + public readonly string Query; + + [OutputConstructor] + private LogsMetricFilter(string query) + { + Query = query; + } + } +} diff --git a/sdk/dotnet/Outputs/LogsMetricGroupBy.cs b/sdk/dotnet/Outputs/LogsMetricGroupBy.cs new file mode 100644 index 000000000..7ced38d54 --- /dev/null +++ b/sdk/dotnet/Outputs/LogsMetricGroupBy.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class LogsMetricGroupBy + { + public readonly string Path; + public readonly string TagName; + + [OutputConstructor] + private LogsMetricGroupBy( + string path, + + string tagName) + { + Path = path; + TagName = tagName; + } + } +} diff --git a/sdk/dotnet/Outputs/MonitorMonitorThresholdWindows.cs b/sdk/dotnet/Outputs/MonitorMonitorThresholdWindows.cs new file mode 100644 index 000000000..a73217c31 --- /dev/null +++ b/sdk/dotnet/Outputs/MonitorMonitorThresholdWindows.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class MonitorMonitorThresholdWindows + { + public readonly string? RecoveryWindow; + public readonly string? TriggerWindow; + + [OutputConstructor] + private MonitorMonitorThresholdWindows( + string? recoveryWindow, + + string? triggerWindow) + { + RecoveryWindow = recoveryWindow; + TriggerWindow = triggerWindow; + } + } +} diff --git a/sdk/dotnet/Outputs/MonitorMonitorThresholds.cs b/sdk/dotnet/Outputs/MonitorMonitorThresholds.cs new file mode 100644 index 000000000..dbd23c7aa --- /dev/null +++ b/sdk/dotnet/Outputs/MonitorMonitorThresholds.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class MonitorMonitorThresholds + { + public readonly string? Critical; + public readonly string? CriticalRecovery; + public readonly string? Ok; + public readonly string? Unknown; + public readonly string? Warning; + public readonly string? WarningRecovery; + + [OutputConstructor] + private MonitorMonitorThresholds( + string? critical, + + string? criticalRecovery, + + string? ok, + + string? unknown, + + string? warning, + + string? warningRecovery) + { + Critical = critical; + CriticalRecovery = criticalRecovery; + Ok = ok; + Unknown = unknown; + Warning = warning; + WarningRecovery = warningRecovery; + } + } +} diff --git a/sdk/dotnet/Outputs/MonitorThresholdWindows.cs b/sdk/dotnet/Outputs/MonitorThresholdWindows.cs index b93df68d0..89d183b17 100644 --- a/sdk/dotnet/Outputs/MonitorThresholdWindows.cs +++ b/sdk/dotnet/Outputs/MonitorThresholdWindows.cs @@ -13,13 +13,7 @@ namespace Pulumi.Datadog.Outputs [OutputType] public sealed class MonitorThresholdWindows { - /// - /// describes how long an anomalous metric must be normal before the alert recovers. - /// public readonly string? RecoveryWindow; - /// - /// describes how long a metric must be anomalous before an alert triggers. - /// public readonly string? TriggerWindow; [OutputConstructor] diff --git a/sdk/dotnet/Outputs/SyntheticsGlobalVariableParseTestOptions.cs b/sdk/dotnet/Outputs/SyntheticsGlobalVariableParseTestOptions.cs new file mode 100644 index 000000000..f5ccbda03 --- /dev/null +++ b/sdk/dotnet/Outputs/SyntheticsGlobalVariableParseTestOptions.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class SyntheticsGlobalVariableParseTestOptions + { + public readonly string? Field; + public readonly Outputs.SyntheticsGlobalVariableParseTestOptionsParser Parser; + public readonly string Type; + + [OutputConstructor] + private SyntheticsGlobalVariableParseTestOptions( + string? field, + + Outputs.SyntheticsGlobalVariableParseTestOptionsParser parser, + + string type) + { + Field = field; + Parser = parser; + Type = type; + } + } +} diff --git a/sdk/dotnet/Outputs/SyntheticsGlobalVariableParseTestOptionsParser.cs b/sdk/dotnet/Outputs/SyntheticsGlobalVariableParseTestOptionsParser.cs new file mode 100644 index 000000000..1d46469ee --- /dev/null +++ b/sdk/dotnet/Outputs/SyntheticsGlobalVariableParseTestOptionsParser.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Datadog.Outputs +{ + + [OutputType] + public sealed class SyntheticsGlobalVariableParseTestOptionsParser + { + public readonly string Type; + public readonly string? Value; + + [OutputConstructor] + private SyntheticsGlobalVariableParseTestOptionsParser( + string type, + + string? value) + { + Type = type; + Value = value; + } + } +} diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs index e1c7ef085..72c58e295 100644 --- a/sdk/dotnet/Provider.cs +++ b/sdk/dotnet/Provider.cs @@ -51,9 +51,9 @@ public sealed class ProviderArgs : Pulumi.ResourceArgs public Input? ApiKey { get; set; } /// - /// The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the - /// /api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And - /// if you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. + /// The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/ + /// path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if + /// you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. /// [Input("apiUrl")] public Input? ApiUrl { get; set; } @@ -66,7 +66,7 @@ public sealed class ProviderArgs : Pulumi.ResourceArgs /// /// Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key - /// and app_keywon't be checked. + /// and app_key won't be checked. /// [Input("validate", json: true)] public Input? Validate { get; set; } diff --git a/sdk/dotnet/SyntheticsGlobalVariable.cs b/sdk/dotnet/SyntheticsGlobalVariable.cs index da9d4f038..ed80d4e3b 100644 --- a/sdk/dotnet/SyntheticsGlobalVariable.cs +++ b/sdk/dotnet/SyntheticsGlobalVariable.cs @@ -60,6 +60,18 @@ public partial class SyntheticsGlobalVariable : Pulumi.CustomResource [Output("name")] public Output Name { get; private set; } = null!; + /// + /// Id of the Synthetics test to use for a variable from test. + /// + [Output("parseTestId")] + public Output ParseTestId { get; private set; } = null!; + + /// + /// ID of the Synthetics test to use a source of the global variable value. + /// + [Output("parseTestOptions")] + public Output ParseTestOptions { get; private set; } = null!; + /// /// Sets the variable as secure. Defaults to `false`. /// @@ -136,6 +148,18 @@ public sealed class SyntheticsGlobalVariableArgs : Pulumi.ResourceArgs [Input("name", required: true)] public Input Name { get; set; } = null!; + /// + /// Id of the Synthetics test to use for a variable from test. + /// + [Input("parseTestId")] + public Input? ParseTestId { get; set; } + + /// + /// ID of the Synthetics test to use a source of the global variable value. + /// + [Input("parseTestOptions")] + public Input? ParseTestOptions { get; set; } + /// /// Sets the variable as secure. Defaults to `false`. /// @@ -179,6 +203,18 @@ public sealed class SyntheticsGlobalVariableState : Pulumi.ResourceArgs [Input("name")] public Input? Name { get; set; } + /// + /// Id of the Synthetics test to use for a variable from test. + /// + [Input("parseTestId")] + public Input? ParseTestId { get; set; } + + /// + /// ID of the Synthetics test to use a source of the global variable value. + /// + [Input("parseTestOptions")] + public Input? ParseTestOptions { get; set; } + /// /// Sets the variable as secure. Defaults to `false`. /// diff --git a/sdk/dotnet/User.cs b/sdk/dotnet/User.cs index 77bdf736c..bbe92db3e 100644 --- a/sdk/dotnet/User.cs +++ b/sdk/dotnet/User.cs @@ -39,10 +39,32 @@ namespace Pulumi.Datadog /// /// } /// ``` + /// ## Schema + /// + /// ### Required + /// + /// - **email** (String) Email address for user. + /// + /// ### Optional + /// + /// - **access_role** (String, Deprecated) Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute. + /// - **disabled** (Boolean) Whether the user is disabled. + /// - **handle** (String, Deprecated) The user handle, must be a valid email. + /// - **id** (String) The ID of this resource. + /// - **is_admin** (Boolean, Deprecated) Whether the user is an administrator. Warning: the corresponding query parameter is ignored by the Datadog API, thus the argument would always trigger an execution plan. + /// - **name** (String) Name for user. + /// - **role** (String, Deprecated) Role description for user. Warning: the corresponding query parameter is ignored by the Datadog API, thus the argument would always trigger an execution plan. + /// - **roles** (Set of String) A list a role IDs to assign to the user. + /// - **send_user_invitation** (Boolean) Whether an invitation email should be sent when the user is created. + /// + /// ### Read-only + /// + /// - **user_invitation_id** (String) The ID of the user invitation that was sent when creating the user. + /// - **verified** (Boolean) Returns true if Datadog user is verified. /// /// ## Import /// - /// users can be imported using their ID, e.g. + /// Import is supported using the following syntax /// /// ```sh /// $ pulumi import datadog:index/user:User example_user 6f1b44c0-30b2-11eb-86bc-279f7c1ebaa4 diff --git a/sdk/go/datadog/config/config.go b/sdk/go/datadog/config/config.go index 4e86c68a9..a548d2da7 100644 --- a/sdk/go/datadog/config/config.go +++ b/sdk/go/datadog/config/config.go @@ -17,9 +17,9 @@ func GetApiKey(ctx *pulumi.Context) string { return getEnvOrDefault("", nil, "DATADOG_API_KEY").(string) } -// The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the -// /api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And -// if you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. +// The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/ +// path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if +// you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. func GetApiUrl(ctx *pulumi.Context) string { v, err := config.Try(ctx, "datadog:apiUrl") if err == nil { @@ -38,7 +38,7 @@ func GetAppKey(ctx *pulumi.Context) string { } // Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key -// and app_keywon't be checked. +// and app_key won't be checked. func GetValidate(ctx *pulumi.Context) bool { return config.GetBool(ctx, "datadog:validate") } diff --git a/sdk/go/datadog/getMonitor.go b/sdk/go/datadog/getMonitor.go index 277b36917..93d53baa8 100644 --- a/sdk/go/datadog/getMonitor.go +++ b/sdk/go/datadog/getMonitor.go @@ -35,6 +35,58 @@ import ( // }) // } // ``` +// ## Schema +// +// ### Optional +// +// - **id** (String) The ID of this resource. +// - **monitor_tags_filter** (List of String) A list of monitor tags to limit the search. This filters on the tags set on the monitor itself. +// - **name_filter** (String) A monitor name to limit the search. +// - **tags_filter** (List of String) A list of tags to limit the search. This filters on the monitor scope. +// +// ### Read-only +// +// - **enable_logs_sample** (Boolean) Whether or not a list of log values which triggered the alert is included. This is only used by log monitors. +// - **escalation_message** (String) Message included with a re-notification for this monitor. +// - **evaluation_delay** (Number) Time (in seconds) for which evaluation is delayed. This is only used by metric monitors. +// - **include_tags** (Boolean) Whether or not notifications from the monitor automatically inserts its triggering tags into the title. +// - **locked** (Boolean) Whether or not changes to the monitor are restricted to the creator or admins. +// - **message** (String) Message included with notifications for this monitor +// - **monitor_threshold_windows** (List of Object) Mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m`. This is only used by anomaly monitors. (see below for nested schema) +// - **monitor_thresholds** (List of Object) Alert thresholds of the monitor. (see below for nested schema) +// - **name** (String) Name of the monitor +// - **new_host_delay** (Number) Time (in seconds) allowing a host to boot and applications to fully start before starting the evaluation of monitor results. +// - **no_data_timeframe** (Number) The number of minutes before the monitor notifies when data stops reporting. +// - **notify_audit** (Boolean) Whether or not tagged users are notified on changes to the monitor. +// - **notify_no_data** (Boolean) Whether or not this monitor notifies when data stops reporting. +// - **query** (String) Query of the monitor. +// - **renotify_interval** (Number) The number of minutes after the last notification before the monitor re-notifies on the current status. +// - **require_full_window** (Boolean) Whether or not the monitor needs a full window of data before it is evaluated. +// - **tags** (Set of String) List of tags associated with the monitor. +// - **threshold_windows** (Map of String, Deprecated) Mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m`. This is only used by anomaly monitors. +// - **thresholds** (Map of String, Deprecated) Alert thresholds of the monitor. +// - **timeout_h** (Number) Number of hours of the monitor not reporting data before it automatically resolves from a triggered state. +// - **type** (String) Type of the monitor. +// +// +// ### Nested Schema for `monitorThresholdWindows` +// +// Read-only: +// +// - **recovery_window** (String) +// - **trigger_window** (String) +// +// +// ### Nested Schema for `monitorThresholds` +// +// Read-only: +// +// - **critical** (String) +// - **critical_recovery** (String) +// - **ok** (String) +// - **unknown** (String) +// - **warning** (String) +// - **warning_recovery** (String) func LookupMonitor(ctx *pulumi.Context, args *LookupMonitorArgs, opts ...pulumi.InvokeOption) (*LookupMonitorResult, error) { var rv LookupMonitorResult err := ctx.Invoke("datadog:index/getMonitor:getMonitor", args, &rv, opts...) @@ -57,24 +109,28 @@ type LookupMonitorResult struct { EscalationMessage string `pulumi:"escalationMessage"` EvaluationDelay int `pulumi:"evaluationDelay"` // The provider-assigned unique ID for this managed resource. - Id string `pulumi:"id"` - IncludeTags bool `pulumi:"includeTags"` - Locked bool `pulumi:"locked"` - Message string `pulumi:"message"` - MonitorTagsFilters []string `pulumi:"monitorTagsFilters"` - Name string `pulumi:"name"` - NameFilter *string `pulumi:"nameFilter"` - NewHostDelay int `pulumi:"newHostDelay"` - NoDataTimeframe int `pulumi:"noDataTimeframe"` - NotifyAudit bool `pulumi:"notifyAudit"` - NotifyNoData bool `pulumi:"notifyNoData"` - Query string `pulumi:"query"` - RenotifyInterval int `pulumi:"renotifyInterval"` - RequireFullWindow bool `pulumi:"requireFullWindow"` - Tags []string `pulumi:"tags"` - TagsFilters []string `pulumi:"tagsFilters"` - ThresholdWindows GetMonitorThresholdWindows `pulumi:"thresholdWindows"` - Thresholds GetMonitorThresholds `pulumi:"thresholds"` - TimeoutH int `pulumi:"timeoutH"` - Type string `pulumi:"type"` + Id string `pulumi:"id"` + IncludeTags bool `pulumi:"includeTags"` + Locked bool `pulumi:"locked"` + Message string `pulumi:"message"` + MonitorTagsFilters []string `pulumi:"monitorTagsFilters"` + MonitorThresholdWindows GetMonitorMonitorThresholdWindows `pulumi:"monitorThresholdWindows"` + MonitorThresholds GetMonitorMonitorThresholds `pulumi:"monitorThresholds"` + Name string `pulumi:"name"` + NameFilter *string `pulumi:"nameFilter"` + NewHostDelay int `pulumi:"newHostDelay"` + NoDataTimeframe int `pulumi:"noDataTimeframe"` + NotifyAudit bool `pulumi:"notifyAudit"` + NotifyNoData bool `pulumi:"notifyNoData"` + Query string `pulumi:"query"` + RenotifyInterval int `pulumi:"renotifyInterval"` + RequireFullWindow bool `pulumi:"requireFullWindow"` + Tags []string `pulumi:"tags"` + TagsFilters []string `pulumi:"tagsFilters"` + // Deprecated: Define `monitor_threshold_windows` list with one element instead. + ThresholdWindows GetMonitorThresholdWindows `pulumi:"thresholdWindows"` + // Deprecated: Define `monitor_thresholds` list with one element instead. + Thresholds GetMonitorThresholds `pulumi:"thresholds"` + TimeoutH int `pulumi:"timeoutH"` + Type string `pulumi:"type"` } diff --git a/sdk/go/datadog/logsArchive.go b/sdk/go/datadog/logsArchive.go index 2f9b368d8..7034136f2 100644 --- a/sdk/go/datadog/logsArchive.go +++ b/sdk/go/datadog/logsArchive.go @@ -11,12 +11,10 @@ import ( "github.com/pulumi/pulumi/sdk/v2/go/pulumi" ) -// Provides a Datadog [Logs Archive API](https://docs.datadoghq.com/api/v2/logs-archives/) resource, which is used to create and manage Datadog logs archives. +// Provides a Datadog Logs Archive API resource, which is used to create and manage Datadog logs archives. // // ## Example Usage // -// Create a Datadog logs archive: -// // ```go // package main // @@ -30,11 +28,11 @@ import ( // _, err := datadog.NewLogsArchive(ctx, "myS3Archive", &datadog.LogsArchiveArgs{ // Name: pulumi.String("my s3 archive"), // Query: pulumi.String("service:myservice"), -// S3: &datadog.LogsArchiveS3Args{ -// Account_id: pulumi.String("001234567888"), -// Bucket: pulumi.String("my-bucket"), -// Path: pulumi.String("/path/foo"), -// Role_name: pulumi.String("my-role-name"), +// S3Archive: &datadog.LogsArchiveS3ArchiveArgs{ +// AccountId: pulumi.String("001234567888"), +// Bucket: pulumi.String("my-bucket"), +// Path: pulumi.String("/path/foo"), +// RoleName: pulumi.String("my-role-name"), // }, // }) // if err != nil { @@ -44,10 +42,62 @@ import ( // }) // } // ``` +// ## Schema +// +// ### Required +// +// - **name** (String, Required) Your archive name. +// - **query** (String, Required) The archive query/filter. Logs matching this query are included in the archive. +// +// ### Optional +// +// - **azure** (Map of String, Optional, Deprecated) Definition of an azure archive. +// - **azure_archive** (Block List, Max: 1) Definition of an azure archive. (see below for nested schema) +// - **gcs** (Map of String, Optional, Deprecated) Definition of a GCS archive. +// - **gcs_archive** (Block List, Max: 1) Definition of a GCS archive. (see below for nested schema) +// - **id** (String, Optional) The ID of this resource. +// - **include_tags** (Boolean, Optional) To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs are sent to the archive. +// - **rehydration_tags** (List of String, Optional) An array of tags to add to rehydrated logs from an archive. +// - **s3** (Map of String, Optional, Deprecated) Definition of an s3 archive. +// - **s3_archive** (Block List, Max: 1) Definition of an s3 archive. (see below for nested schema) +// +// +// ### Nested Schema for `azureArchive` +// +// Required: +// +// - **client_id** (String, Required) Your client id. +// - **container** (String, Required) The container where the archive will be stored. +// - **storage_account** (String, Required) The associated storage account. +// - **tenant_id** (String, Required) Your tenant id. +// +// Optional: +// +// - **path** (String, Optional) The path where the archive will be stored. +// +// +// ### Nested Schema for `gcsArchive` +// +// Required: +// +// - **bucket** (String, Required) Name of your GCS bucket. +// - **client_email** (String, Required) Your client email. +// - **path** (String, Required) Path where the archive will be stored. +// - **project_id** (String, Required) Your project id. +// +// +// ### Nested Schema for `s3Archive` +// +// Required: +// +// - **account_id** (String, Required) Your AWS account id. +// - **bucket** (String, Required) Name of your s3 bucket. +// - **path** (String, Required) Path where the archive will be stored. +// - **role_name** (String, Required) Your AWS role name // // ## Import // -// Logs archives can be imported using their public string ID, e.g. +// Import is supported using the following syntax // // ```sh // $ pulumi import datadog:index/logsArchive:LogsArchive my_s3_archive 1Aabc2_dfQPLnXy3HlfK4hi @@ -56,9 +106,17 @@ type LogsArchive struct { pulumi.CustomResourceState // Definition of an azure archive. + // + // Deprecated: Define `azure_archive` list with one element instead. Azure LogsArchiveAzurePtrOutput `pulumi:"azure"` + // Definition of an azure archive. + AzureArchive LogsArchiveAzureArchivePtrOutput `pulumi:"azureArchive"` // Definition of a GCS archive. + // + // Deprecated: Define `gcs_archive` list with one element instead. Gcs LogsArchiveGcsPtrOutput `pulumi:"gcs"` + // Definition of a GCS archive. + GcsArchive LogsArchiveGcsArchivePtrOutput `pulumi:"gcsArchive"` // To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs // are sent to the archive. IncludeTags pulumi.BoolPtrOutput `pulumi:"includeTags"` @@ -69,7 +127,11 @@ type LogsArchive struct { // An array of tags to add to rehydrated logs from an archive. RehydrationTags pulumi.StringArrayOutput `pulumi:"rehydrationTags"` // Definition of an s3 archive. + // + // Deprecated: Define `s3_archive` list with one element instead. S3 LogsArchiveS3PtrOutput `pulumi:"s3"` + // Definition of an s3 archive. + S3Archive LogsArchiveS3ArchivePtrOutput `pulumi:"s3Archive"` } // NewLogsArchive registers a new resource with the given unique name, arguments, and options. @@ -108,9 +170,17 @@ func GetLogsArchive(ctx *pulumi.Context, // Input properties used for looking up and filtering LogsArchive resources. type logsArchiveState struct { // Definition of an azure archive. + // + // Deprecated: Define `azure_archive` list with one element instead. Azure *LogsArchiveAzure `pulumi:"azure"` + // Definition of an azure archive. + AzureArchive *LogsArchiveAzureArchive `pulumi:"azureArchive"` // Definition of a GCS archive. + // + // Deprecated: Define `gcs_archive` list with one element instead. Gcs *LogsArchiveGcs `pulumi:"gcs"` + // Definition of a GCS archive. + GcsArchive *LogsArchiveGcsArchive `pulumi:"gcsArchive"` // To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs // are sent to the archive. IncludeTags *bool `pulumi:"includeTags"` @@ -121,14 +191,26 @@ type logsArchiveState struct { // An array of tags to add to rehydrated logs from an archive. RehydrationTags []string `pulumi:"rehydrationTags"` // Definition of an s3 archive. + // + // Deprecated: Define `s3_archive` list with one element instead. S3 *LogsArchiveS3 `pulumi:"s3"` + // Definition of an s3 archive. + S3Archive *LogsArchiveS3Archive `pulumi:"s3Archive"` } type LogsArchiveState struct { // Definition of an azure archive. + // + // Deprecated: Define `azure_archive` list with one element instead. Azure LogsArchiveAzurePtrInput + // Definition of an azure archive. + AzureArchive LogsArchiveAzureArchivePtrInput // Definition of a GCS archive. + // + // Deprecated: Define `gcs_archive` list with one element instead. Gcs LogsArchiveGcsPtrInput + // Definition of a GCS archive. + GcsArchive LogsArchiveGcsArchivePtrInput // To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs // are sent to the archive. IncludeTags pulumi.BoolPtrInput @@ -139,7 +221,11 @@ type LogsArchiveState struct { // An array of tags to add to rehydrated logs from an archive. RehydrationTags pulumi.StringArrayInput // Definition of an s3 archive. + // + // Deprecated: Define `s3_archive` list with one element instead. S3 LogsArchiveS3PtrInput + // Definition of an s3 archive. + S3Archive LogsArchiveS3ArchivePtrInput } func (LogsArchiveState) ElementType() reflect.Type { @@ -148,9 +234,17 @@ func (LogsArchiveState) ElementType() reflect.Type { type logsArchiveArgs struct { // Definition of an azure archive. + // + // Deprecated: Define `azure_archive` list with one element instead. Azure *LogsArchiveAzure `pulumi:"azure"` + // Definition of an azure archive. + AzureArchive *LogsArchiveAzureArchive `pulumi:"azureArchive"` // Definition of a GCS archive. + // + // Deprecated: Define `gcs_archive` list with one element instead. Gcs *LogsArchiveGcs `pulumi:"gcs"` + // Definition of a GCS archive. + GcsArchive *LogsArchiveGcsArchive `pulumi:"gcsArchive"` // To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs // are sent to the archive. IncludeTags *bool `pulumi:"includeTags"` @@ -161,15 +255,27 @@ type logsArchiveArgs struct { // An array of tags to add to rehydrated logs from an archive. RehydrationTags []string `pulumi:"rehydrationTags"` // Definition of an s3 archive. + // + // Deprecated: Define `s3_archive` list with one element instead. S3 *LogsArchiveS3 `pulumi:"s3"` + // Definition of an s3 archive. + S3Archive *LogsArchiveS3Archive `pulumi:"s3Archive"` } // The set of arguments for constructing a LogsArchive resource. type LogsArchiveArgs struct { // Definition of an azure archive. + // + // Deprecated: Define `azure_archive` list with one element instead. Azure LogsArchiveAzurePtrInput + // Definition of an azure archive. + AzureArchive LogsArchiveAzureArchivePtrInput // Definition of a GCS archive. + // + // Deprecated: Define `gcs_archive` list with one element instead. Gcs LogsArchiveGcsPtrInput + // Definition of a GCS archive. + GcsArchive LogsArchiveGcsArchivePtrInput // To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs // are sent to the archive. IncludeTags pulumi.BoolPtrInput @@ -180,7 +286,11 @@ type LogsArchiveArgs struct { // An array of tags to add to rehydrated logs from an archive. RehydrationTags pulumi.StringArrayInput // Definition of an s3 archive. + // + // Deprecated: Define `s3_archive` list with one element instead. S3 LogsArchiveS3PtrInput + // Definition of an s3 archive. + S3Archive LogsArchiveS3ArchivePtrInput } func (LogsArchiveArgs) ElementType() reflect.Type { diff --git a/sdk/go/datadog/logsMetric.go b/sdk/go/datadog/logsMetric.go new file mode 100644 index 000000000..6e1092897 --- /dev/null +++ b/sdk/go/datadog/logsMetric.go @@ -0,0 +1,237 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package datadog + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Resource for interacting with the logsMetric API +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := datadog.NewLogsMetric(ctx, "testingLogsMetric", &datadog.LogsMetricArgs{ +// Compute: &datadog.LogsMetricComputeArgs{ +// AggregationType: pulumi.String("distribution"), +// Path: pulumi.String("@duration"), +// }, +// Filter: &datadog.LogsMetricFilterArgs{ +// Query: pulumi.String("service:test"), +// }, +// GroupBies: datadog.LogsMetricGroupByArray{ +// &datadog.LogsMetricGroupByArgs{ +// Path: pulumi.String("@status"), +// TagName: pulumi.String("status"), +// }, +// }, +// Name: pulumi.String("testing.logs.metric"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// ## Schema +// +// ### Required +// +// - **compute** (Block List, Min: 1, Max: 1) The compute rule to compute the log-based metric. This field can't be updated after creation. (see below for nested schema) +// - **filter** (Block List, Min: 1, Max: 1) The log-based metric filter. Logs matching this filter will be aggregated in this metric. (see below for nested schema) +// - **name** (String, Required) The name of the log-based metric. This field can't be updated after creation. +// +// ### Optional +// +// - **group_by** (Block List) The rules for the group by. (see below for nested schema) +// - **id** (String, Optional) The ID of this resource. +// +// +// ### Nested Schema for `compute` +// +// Required: +// +// - **aggregation_type** (String, Required) The type of aggregation to use. This field can't be updated after creation. +// +// Optional: +// +// - **path** (String, Optional) The path to the value the log-based metric will aggregate on (only used if the aggregation type is a "distribution"). This field can't be updated after creation. +// +// +// ### Nested Schema for `filter` +// +// Required: +// +// - **query** (String, Required) The search query - following the log search syntax. +// +// +// ### Nested Schema for `groupBy` +// +// Required: +// +// - **path** (String, Required) The path to the value the log-based metric will be aggregated over. +// - **tag_name** (String, Required) Name of the tag that gets created. +// +// ## Import +// +// Import is supported using the following syntax +// +// ```sh +// $ pulumi import datadog:index/logsMetric:LogsMetric testing_logs_metric testing.logs.metric +// ``` +type LogsMetric struct { + pulumi.CustomResourceState + + // The compute rule to compute the log-based metric. This field can't be updated after creation. + Compute LogsMetricComputeOutput `pulumi:"compute"` + // The log-based metric filter. Logs matching this filter will be aggregated in this metric. + Filter LogsMetricFilterOutput `pulumi:"filter"` + // The rules for the group by. + GroupBies LogsMetricGroupByArrayOutput `pulumi:"groupBies"` + // The name of the log-based metric. This field can't be updated after creation. + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewLogsMetric registers a new resource with the given unique name, arguments, and options. +func NewLogsMetric(ctx *pulumi.Context, + name string, args *LogsMetricArgs, opts ...pulumi.ResourceOption) (*LogsMetric, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Compute == nil { + return nil, errors.New("invalid value for required argument 'Compute'") + } + if args.Filter == nil { + return nil, errors.New("invalid value for required argument 'Filter'") + } + if args.Name == nil { + return nil, errors.New("invalid value for required argument 'Name'") + } + var resource LogsMetric + err := ctx.RegisterResource("datadog:index/logsMetric:LogsMetric", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogsMetric gets an existing LogsMetric resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogsMetric(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogsMetricState, opts ...pulumi.ResourceOption) (*LogsMetric, error) { + var resource LogsMetric + err := ctx.ReadResource("datadog:index/logsMetric:LogsMetric", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogsMetric resources. +type logsMetricState struct { + // The compute rule to compute the log-based metric. This field can't be updated after creation. + Compute *LogsMetricCompute `pulumi:"compute"` + // The log-based metric filter. Logs matching this filter will be aggregated in this metric. + Filter *LogsMetricFilter `pulumi:"filter"` + // The rules for the group by. + GroupBies []LogsMetricGroupBy `pulumi:"groupBies"` + // The name of the log-based metric. This field can't be updated after creation. + Name *string `pulumi:"name"` +} + +type LogsMetricState struct { + // The compute rule to compute the log-based metric. This field can't be updated after creation. + Compute LogsMetricComputePtrInput + // The log-based metric filter. Logs matching this filter will be aggregated in this metric. + Filter LogsMetricFilterPtrInput + // The rules for the group by. + GroupBies LogsMetricGroupByArrayInput + // The name of the log-based metric. This field can't be updated after creation. + Name pulumi.StringPtrInput +} + +func (LogsMetricState) ElementType() reflect.Type { + return reflect.TypeOf((*logsMetricState)(nil)).Elem() +} + +type logsMetricArgs struct { + // The compute rule to compute the log-based metric. This field can't be updated after creation. + Compute LogsMetricCompute `pulumi:"compute"` + // The log-based metric filter. Logs matching this filter will be aggregated in this metric. + Filter LogsMetricFilter `pulumi:"filter"` + // The rules for the group by. + GroupBies []LogsMetricGroupBy `pulumi:"groupBies"` + // The name of the log-based metric. This field can't be updated after creation. + Name string `pulumi:"name"` +} + +// The set of arguments for constructing a LogsMetric resource. +type LogsMetricArgs struct { + // The compute rule to compute the log-based metric. This field can't be updated after creation. + Compute LogsMetricComputeInput + // The log-based metric filter. Logs matching this filter will be aggregated in this metric. + Filter LogsMetricFilterInput + // The rules for the group by. + GroupBies LogsMetricGroupByArrayInput + // The name of the log-based metric. This field can't be updated after creation. + Name pulumi.StringInput +} + +func (LogsMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logsMetricArgs)(nil)).Elem() +} + +type LogsMetricInput interface { + pulumi.Input + + ToLogsMetricOutput() LogsMetricOutput + ToLogsMetricOutputWithContext(ctx context.Context) LogsMetricOutput +} + +func (LogsMetric) ElementType() reflect.Type { + return reflect.TypeOf((*LogsMetric)(nil)).Elem() +} + +func (i LogsMetric) ToLogsMetricOutput() LogsMetricOutput { + return i.ToLogsMetricOutputWithContext(context.Background()) +} + +func (i LogsMetric) ToLogsMetricOutputWithContext(ctx context.Context) LogsMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsMetricOutput) +} + +type LogsMetricOutput struct { + *pulumi.OutputState +} + +func (LogsMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogsMetricOutput)(nil)).Elem() +} + +func (o LogsMetricOutput) ToLogsMetricOutput() LogsMetricOutput { + return o +} + +func (o LogsMetricOutput) ToLogsMetricOutputWithContext(ctx context.Context) LogsMetricOutput { + return o +} + +func init() { + pulumi.RegisterOutputType(LogsMetricOutput{}) +} diff --git a/sdk/go/datadog/monitor.go b/sdk/go/datadog/monitor.go index d0772422f..5f4f2470b 100644 --- a/sdk/go/datadog/monitor.go +++ b/sdk/go/datadog/monitor.go @@ -11,109 +11,9 @@ import ( "github.com/pulumi/pulumi/sdk/v2/go/pulumi" ) -// Provides a Datadog monitor resource. This can be used to create and manage Datadog monitors. -// -// ## Example Usage -// -// ```go -// package main -// -// import ( -// "github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog" -// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" -// ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// _, err := datadog.NewMonitor(ctx, "foo", &datadog.MonitorArgs{ -// Name: pulumi.String("Name for monitor foo"), -// Type: pulumi.String("metric alert"), -// Message: pulumi.String("Monitor triggered. Notify: @hipchat-channel"), -// EscalationMessage: pulumi.String("Escalation message @pagerduty"), -// Query: pulumi.String("avg(last_1h):avg:aws.ec2.cpu{environment:foo,host:foo} by {host} > 4"), -// Thresholds: &datadog.MonitorThresholdsArgs{ -// Warning: pulumi.Float64(2), -// Warning_recovery: pulumi.Float64(1), -// Critical: pulumi.Float64(4), -// Critical_recovery: pulumi.Float64(3), -// }, -// NotifyNoData: pulumi.Bool(false), -// RenotifyInterval: pulumi.Int(60), -// NotifyAudit: pulumi.Bool(false), -// TimeoutH: pulumi.Int(60), -// IncludeTags: pulumi.Bool(true), -// Tags: pulumi.StringArray{ -// pulumi.String("foo:bar"), -// pulumi.String("baz"), -// }, -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// ``` -// ## Silencing by Hand and by Downtimes -// -// There are two ways how to silence a single monitor: -// -// - Mute it by hand -// - Create a Downtime -// -// Both of these actions add a new value to the `silenced` map. This can be problematic if the `silenced` attribute doesn't contain them in your application, as they would be removed on next `pulumi up` invocation. In order to prevent that from happening, you can add following to your monitor: -// -// ```go -// package main -// -// import ( -// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" -// ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// return nil -// }) -// } -// ``` -// -// The above will make sure that any changes to the `silenced` attribute are ignored. -// -// This issue doesn't apply to multi-monitor downtimes (those that don't contain `monitorId` ), as these don't influence contents of the `silenced` attribute. -// -// ## Composite Monitors -// -// You can compose monitors of all types in order to define more specific alert conditions (see the [doc](https://docs.datadoghq.com/monitors/monitor_types/composite/)). You just need to reuse the ID of your `Monitor` resources. You can also compose any monitor with a `SyntheticsTest` by passing the computed `monitorId` attribute in the query. -// -// ```go -// package main -// -// import ( -// "fmt" -// -// "github.com/pulumi/pulumi-datadog/sdk/v2/go/datadog" -// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" -// ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// _, err := datadog.NewMonitor(ctx, "bar", &datadog.MonitorArgs{ -// Message: pulumi.String("This is a message"), -// Name: pulumi.String("Composite Monitor"), -// Query: pulumi.String(fmt.Sprintf("%v%v%v", datadog_monitor.Foo.Id, " || ", datadog_synthetics_test.Foo.Monitor_id)), -// Type: pulumi.String("composite"), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// ``` -// // ## Import // -// Monitors can be imported using their numeric ID, e.g. console +// Import is supported using the following syntax // // ```sh // $ pulumi import datadog:index/monitor:Monitor bytes_received_localhost 2081 @@ -121,57 +21,83 @@ import ( type Monitor struct { pulumi.CustomResourceState - // A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + // A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + // monitors. Defaults to `false`. EnableLogsSample pulumi.BoolPtrOutput `pulumi:"enableLogsSample"` // A message to include with a re-notification. Supports the `@username` notification allowed elsewhere. EscalationMessage pulumi.StringPtrOutput `pulumi:"escalationMessage"` - // Time (in seconds) to delay evaluation, as a non-negative integer. + // (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + // value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + // from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + // data during evaluation. EvaluationDelay pulumi.IntOutput `pulumi:"evaluationDelay"` - // A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + // A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + // composite monitor). ForceDelete pulumi.BoolPtrOutput `pulumi:"forceDelete"` - // A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + // A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + // Defaults to `true`. IncludeTags pulumi.BoolPtrOutput `pulumi:"includeTags"` - // A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + // A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + // `false`. Locked pulumi.BoolPtrOutput `pulumi:"locked"` // A message to include with notifications for this monitor. Email notifications can be sent to specific users by using the // same `@username` notation as events. Message pulumi.StringOutput `pulumi:"message"` + // A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + // required for, anomaly monitors. + MonitorThresholdWindows MonitorMonitorThresholdWindowsPtrOutput `pulumi:"monitorThresholdWindows"` + // Alert thresholds of the monitor. + MonitorThresholds MonitorMonitorThresholdsPtrOutput `pulumi:"monitorThresholds"` // Name of Datadog monitor. Name pulumi.StringOutput `pulumi:"name"` - // Time (in seconds) to allow a host to boot and + // Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + // results. Should be a non negative integer. Defaults to `300`. NewHostDelay pulumi.IntPtrOutput `pulumi:"newHostDelay"` - // The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + // The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + // recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. NoDataTimeframe pulumi.IntPtrOutput `pulumi:"noDataTimeframe"` - // A boolean indicating whether tagged users will be notified on changes to this monitor. + // A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. NotifyAudit pulumi.BoolPtrOutput `pulumi:"notifyAudit"` - // A boolean indicating whether this monitor will notify when data stops reporting. Defaults + // A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. NotifyNoData pulumi.BoolPtrOutput `pulumi:"notifyNoData"` - // Integer from 1 (high) to 5 (low) indicating alert severity. - Priority pulumi.IntPtrOutput `pulumi:"priority"` + Priority pulumi.IntPtrOutput `pulumi:"priority"` // The monitor query to notify on. Note this is not the same query you see in the UI and the syntax is different depending // on the monitor type, please see the [API Reference](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor) for // details. Warning: `terraform plan` won't perform any validation of the query contents. Query pulumi.StringOutput `pulumi:"query"` - // The number of minutes after the last notification before a monitor will re-notify + // The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + // re-notify if it's not resolved. RenotifyInterval pulumi.IntPtrOutput `pulumi:"renotifyInterval"` - // A boolean indicating whether this monitor needs a full window of data before it's evaluated. + // A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + // this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + // times` and `in total` aggregation. `false` otherwise. RequireFullWindow pulumi.BoolPtrOutput `pulumi:"requireFullWindow"` - // Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + // Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + // the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + // removed in the next major version of the Terraform Provider. // // Deprecated: use Downtime Resource instead Silenced pulumi.MapOutput `pulumi:"silenced"` - // A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + // A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + // page of the UI. Note: it's not currently possible to filter by these tags when querying via the API Tags pulumi.StringArrayOutput `pulumi:"tags"` - // A mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m` . Can only be used for, and are required for, anomaly monitors. + // A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + // required for, anomaly monitors. + // + // Deprecated: Define `monitor_threshold_windows` list with one element instead. ThresholdWindows MonitorThresholdWindowsPtrOutput `pulumi:"thresholdWindows"` - Thresholds MonitorThresholdsPtrOutput `pulumi:"thresholds"` - // The number of hours of the monitor not reporting data before it will automatically resolve + // Alert thresholds of the monitor. + // + // Deprecated: Define `monitor_thresholds` list with one element instead. + Thresholds MonitorThresholdsPtrOutput `pulumi:"thresholds"` + // The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + // Defaults to `false`. TimeoutH pulumi.IntPtrOutput `pulumi:"timeoutH"` // The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - // Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - // are below. Note: The monitor type cannot be changed after a monitor is created. + // Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + // cannot be changed after a monitor is created. Type pulumi.StringOutput `pulumi:"type"` - // If set to false, skip the validation call done during `plan` . + // If set to `false`, skip the validation call done during plan. Validate pulumi.BoolPtrOutput `pulumi:"validate"` } @@ -216,112 +142,164 @@ func GetMonitor(ctx *pulumi.Context, // Input properties used for looking up and filtering Monitor resources. type monitorState struct { - // A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + // A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + // monitors. Defaults to `false`. EnableLogsSample *bool `pulumi:"enableLogsSample"` // A message to include with a re-notification. Supports the `@username` notification allowed elsewhere. EscalationMessage *string `pulumi:"escalationMessage"` - // Time (in seconds) to delay evaluation, as a non-negative integer. + // (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + // value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + // from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + // data during evaluation. EvaluationDelay *int `pulumi:"evaluationDelay"` - // A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + // A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + // composite monitor). ForceDelete *bool `pulumi:"forceDelete"` - // A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + // A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + // Defaults to `true`. IncludeTags *bool `pulumi:"includeTags"` - // A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + // A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + // `false`. Locked *bool `pulumi:"locked"` // A message to include with notifications for this monitor. Email notifications can be sent to specific users by using the // same `@username` notation as events. Message *string `pulumi:"message"` + // A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + // required for, anomaly monitors. + MonitorThresholdWindows *MonitorMonitorThresholdWindows `pulumi:"monitorThresholdWindows"` + // Alert thresholds of the monitor. + MonitorThresholds *MonitorMonitorThresholds `pulumi:"monitorThresholds"` // Name of Datadog monitor. Name *string `pulumi:"name"` - // Time (in seconds) to allow a host to boot and + // Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + // results. Should be a non negative integer. Defaults to `300`. NewHostDelay *int `pulumi:"newHostDelay"` - // The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + // The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + // recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. NoDataTimeframe *int `pulumi:"noDataTimeframe"` - // A boolean indicating whether tagged users will be notified on changes to this monitor. + // A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. NotifyAudit *bool `pulumi:"notifyAudit"` - // A boolean indicating whether this monitor will notify when data stops reporting. Defaults + // A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. NotifyNoData *bool `pulumi:"notifyNoData"` - // Integer from 1 (high) to 5 (low) indicating alert severity. - Priority *int `pulumi:"priority"` + Priority *int `pulumi:"priority"` // The monitor query to notify on. Note this is not the same query you see in the UI and the syntax is different depending // on the monitor type, please see the [API Reference](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor) for // details. Warning: `terraform plan` won't perform any validation of the query contents. Query *string `pulumi:"query"` - // The number of minutes after the last notification before a monitor will re-notify + // The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + // re-notify if it's not resolved. RenotifyInterval *int `pulumi:"renotifyInterval"` - // A boolean indicating whether this monitor needs a full window of data before it's evaluated. + // A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + // this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + // times` and `in total` aggregation. `false` otherwise. RequireFullWindow *bool `pulumi:"requireFullWindow"` - // Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + // Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + // the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + // removed in the next major version of the Terraform Provider. // // Deprecated: use Downtime Resource instead Silenced map[string]interface{} `pulumi:"silenced"` - // A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + // A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + // page of the UI. Note: it's not currently possible to filter by these tags when querying via the API Tags []string `pulumi:"tags"` - // A mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m` . Can only be used for, and are required for, anomaly monitors. + // A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + // required for, anomaly monitors. + // + // Deprecated: Define `monitor_threshold_windows` list with one element instead. ThresholdWindows *MonitorThresholdWindows `pulumi:"thresholdWindows"` - Thresholds *MonitorThresholds `pulumi:"thresholds"` - // The number of hours of the monitor not reporting data before it will automatically resolve + // Alert thresholds of the monitor. + // + // Deprecated: Define `monitor_thresholds` list with one element instead. + Thresholds *MonitorThresholds `pulumi:"thresholds"` + // The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + // Defaults to `false`. TimeoutH *int `pulumi:"timeoutH"` // The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - // Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - // are below. Note: The monitor type cannot be changed after a monitor is created. + // Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + // cannot be changed after a monitor is created. Type *string `pulumi:"type"` - // If set to false, skip the validation call done during `plan` . + // If set to `false`, skip the validation call done during plan. Validate *bool `pulumi:"validate"` } type MonitorState struct { - // A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + // A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + // monitors. Defaults to `false`. EnableLogsSample pulumi.BoolPtrInput // A message to include with a re-notification. Supports the `@username` notification allowed elsewhere. EscalationMessage pulumi.StringPtrInput - // Time (in seconds) to delay evaluation, as a non-negative integer. + // (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + // value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + // from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + // data during evaluation. EvaluationDelay pulumi.IntPtrInput - // A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + // A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + // composite monitor). ForceDelete pulumi.BoolPtrInput - // A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + // A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + // Defaults to `true`. IncludeTags pulumi.BoolPtrInput - // A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + // A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + // `false`. Locked pulumi.BoolPtrInput // A message to include with notifications for this monitor. Email notifications can be sent to specific users by using the // same `@username` notation as events. Message pulumi.StringPtrInput + // A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + // required for, anomaly monitors. + MonitorThresholdWindows MonitorMonitorThresholdWindowsPtrInput + // Alert thresholds of the monitor. + MonitorThresholds MonitorMonitorThresholdsPtrInput // Name of Datadog monitor. Name pulumi.StringPtrInput - // Time (in seconds) to allow a host to boot and + // Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + // results. Should be a non negative integer. Defaults to `300`. NewHostDelay pulumi.IntPtrInput - // The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + // The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + // recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. NoDataTimeframe pulumi.IntPtrInput - // A boolean indicating whether tagged users will be notified on changes to this monitor. + // A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. NotifyAudit pulumi.BoolPtrInput - // A boolean indicating whether this monitor will notify when data stops reporting. Defaults + // A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. NotifyNoData pulumi.BoolPtrInput - // Integer from 1 (high) to 5 (low) indicating alert severity. - Priority pulumi.IntPtrInput + Priority pulumi.IntPtrInput // The monitor query to notify on. Note this is not the same query you see in the UI and the syntax is different depending // on the monitor type, please see the [API Reference](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor) for // details. Warning: `terraform plan` won't perform any validation of the query contents. Query pulumi.StringPtrInput - // The number of minutes after the last notification before a monitor will re-notify + // The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + // re-notify if it's not resolved. RenotifyInterval pulumi.IntPtrInput - // A boolean indicating whether this monitor needs a full window of data before it's evaluated. + // A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + // this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + // times` and `in total` aggregation. `false` otherwise. RequireFullWindow pulumi.BoolPtrInput - // Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + // Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + // the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + // removed in the next major version of the Terraform Provider. // // Deprecated: use Downtime Resource instead Silenced pulumi.MapInput - // A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + // A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + // page of the UI. Note: it's not currently possible to filter by these tags when querying via the API Tags pulumi.StringArrayInput - // A mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m` . Can only be used for, and are required for, anomaly monitors. + // A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + // required for, anomaly monitors. + // + // Deprecated: Define `monitor_threshold_windows` list with one element instead. ThresholdWindows MonitorThresholdWindowsPtrInput - Thresholds MonitorThresholdsPtrInput - // The number of hours of the monitor not reporting data before it will automatically resolve + // Alert thresholds of the monitor. + // + // Deprecated: Define `monitor_thresholds` list with one element instead. + Thresholds MonitorThresholdsPtrInput + // The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + // Defaults to `false`. TimeoutH pulumi.IntPtrInput // The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - // Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - // are below. Note: The monitor type cannot be changed after a monitor is created. + // Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + // cannot be changed after a monitor is created. Type pulumi.StringPtrInput - // If set to false, skip the validation call done during `plan` . + // If set to `false`, skip the validation call done during plan. Validate pulumi.BoolPtrInput } @@ -330,113 +308,165 @@ func (MonitorState) ElementType() reflect.Type { } type monitorArgs struct { - // A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + // A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + // monitors. Defaults to `false`. EnableLogsSample *bool `pulumi:"enableLogsSample"` // A message to include with a re-notification. Supports the `@username` notification allowed elsewhere. EscalationMessage *string `pulumi:"escalationMessage"` - // Time (in seconds) to delay evaluation, as a non-negative integer. + // (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + // value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + // from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + // data during evaluation. EvaluationDelay *int `pulumi:"evaluationDelay"` - // A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + // A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + // composite monitor). ForceDelete *bool `pulumi:"forceDelete"` - // A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + // A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + // Defaults to `true`. IncludeTags *bool `pulumi:"includeTags"` - // A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + // A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + // `false`. Locked *bool `pulumi:"locked"` // A message to include with notifications for this monitor. Email notifications can be sent to specific users by using the // same `@username` notation as events. Message string `pulumi:"message"` + // A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + // required for, anomaly monitors. + MonitorThresholdWindows *MonitorMonitorThresholdWindows `pulumi:"monitorThresholdWindows"` + // Alert thresholds of the monitor. + MonitorThresholds *MonitorMonitorThresholds `pulumi:"monitorThresholds"` // Name of Datadog monitor. Name string `pulumi:"name"` - // Time (in seconds) to allow a host to boot and + // Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + // results. Should be a non negative integer. Defaults to `300`. NewHostDelay *int `pulumi:"newHostDelay"` - // The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + // The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + // recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. NoDataTimeframe *int `pulumi:"noDataTimeframe"` - // A boolean indicating whether tagged users will be notified on changes to this monitor. + // A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. NotifyAudit *bool `pulumi:"notifyAudit"` - // A boolean indicating whether this monitor will notify when data stops reporting. Defaults + // A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. NotifyNoData *bool `pulumi:"notifyNoData"` - // Integer from 1 (high) to 5 (low) indicating alert severity. - Priority *int `pulumi:"priority"` + Priority *int `pulumi:"priority"` // The monitor query to notify on. Note this is not the same query you see in the UI and the syntax is different depending // on the monitor type, please see the [API Reference](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor) for // details. Warning: `terraform plan` won't perform any validation of the query contents. Query string `pulumi:"query"` - // The number of minutes after the last notification before a monitor will re-notify + // The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + // re-notify if it's not resolved. RenotifyInterval *int `pulumi:"renotifyInterval"` - // A boolean indicating whether this monitor needs a full window of data before it's evaluated. + // A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + // this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + // times` and `in total` aggregation. `false` otherwise. RequireFullWindow *bool `pulumi:"requireFullWindow"` - // Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + // Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + // the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + // removed in the next major version of the Terraform Provider. // // Deprecated: use Downtime Resource instead Silenced map[string]interface{} `pulumi:"silenced"` - // A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + // A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + // page of the UI. Note: it's not currently possible to filter by these tags when querying via the API Tags []string `pulumi:"tags"` - // A mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m` . Can only be used for, and are required for, anomaly monitors. + // A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + // required for, anomaly monitors. + // + // Deprecated: Define `monitor_threshold_windows` list with one element instead. ThresholdWindows *MonitorThresholdWindows `pulumi:"thresholdWindows"` - Thresholds *MonitorThresholds `pulumi:"thresholds"` - // The number of hours of the monitor not reporting data before it will automatically resolve + // Alert thresholds of the monitor. + // + // Deprecated: Define `monitor_thresholds` list with one element instead. + Thresholds *MonitorThresholds `pulumi:"thresholds"` + // The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + // Defaults to `false`. TimeoutH *int `pulumi:"timeoutH"` // The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - // Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - // are below. Note: The monitor type cannot be changed after a monitor is created. + // Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + // cannot be changed after a monitor is created. Type string `pulumi:"type"` - // If set to false, skip the validation call done during `plan` . + // If set to `false`, skip the validation call done during plan. Validate *bool `pulumi:"validate"` } // The set of arguments for constructing a Monitor resource. type MonitorArgs struct { - // A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + // A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + // monitors. Defaults to `false`. EnableLogsSample pulumi.BoolPtrInput // A message to include with a re-notification. Supports the `@username` notification allowed elsewhere. EscalationMessage pulumi.StringPtrInput - // Time (in seconds) to delay evaluation, as a non-negative integer. + // (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + // value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + // from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + // data during evaluation. EvaluationDelay pulumi.IntPtrInput - // A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + // A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + // composite monitor). ForceDelete pulumi.BoolPtrInput - // A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + // A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + // Defaults to `true`. IncludeTags pulumi.BoolPtrInput - // A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + // A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + // `false`. Locked pulumi.BoolPtrInput // A message to include with notifications for this monitor. Email notifications can be sent to specific users by using the // same `@username` notation as events. Message pulumi.StringInput + // A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + // required for, anomaly monitors. + MonitorThresholdWindows MonitorMonitorThresholdWindowsPtrInput + // Alert thresholds of the monitor. + MonitorThresholds MonitorMonitorThresholdsPtrInput // Name of Datadog monitor. Name pulumi.StringInput - // Time (in seconds) to allow a host to boot and + // Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + // results. Should be a non negative integer. Defaults to `300`. NewHostDelay pulumi.IntPtrInput - // The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + // The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + // recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. NoDataTimeframe pulumi.IntPtrInput - // A boolean indicating whether tagged users will be notified on changes to this monitor. + // A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. NotifyAudit pulumi.BoolPtrInput - // A boolean indicating whether this monitor will notify when data stops reporting. Defaults + // A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. NotifyNoData pulumi.BoolPtrInput - // Integer from 1 (high) to 5 (low) indicating alert severity. - Priority pulumi.IntPtrInput + Priority pulumi.IntPtrInput // The monitor query to notify on. Note this is not the same query you see in the UI and the syntax is different depending // on the monitor type, please see the [API Reference](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor) for // details. Warning: `terraform plan` won't perform any validation of the query contents. Query pulumi.StringInput - // The number of minutes after the last notification before a monitor will re-notify + // The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + // re-notify if it's not resolved. RenotifyInterval pulumi.IntPtrInput - // A boolean indicating whether this monitor needs a full window of data before it's evaluated. + // A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + // this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + // times` and `in total` aggregation. `false` otherwise. RequireFullWindow pulumi.BoolPtrInput - // Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + // Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + // the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + // removed in the next major version of the Terraform Provider. // // Deprecated: use Downtime Resource instead Silenced pulumi.MapInput - // A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + // A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + // page of the UI. Note: it's not currently possible to filter by these tags when querying via the API Tags pulumi.StringArrayInput - // A mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m` . Can only be used for, and are required for, anomaly monitors. + // A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + // required for, anomaly monitors. + // + // Deprecated: Define `monitor_threshold_windows` list with one element instead. ThresholdWindows MonitorThresholdWindowsPtrInput - Thresholds MonitorThresholdsPtrInput - // The number of hours of the monitor not reporting data before it will automatically resolve + // Alert thresholds of the monitor. + // + // Deprecated: Define `monitor_thresholds` list with one element instead. + Thresholds MonitorThresholdsPtrInput + // The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + // Defaults to `false`. TimeoutH pulumi.IntPtrInput // The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - // Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - // are below. Note: The monitor type cannot be changed after a monitor is created. + // Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + // cannot be changed after a monitor is created. Type pulumi.StringInput - // If set to false, skip the validation call done during `plan` . + // If set to `false`, skip the validation call done during plan. Validate pulumi.BoolPtrInput } diff --git a/sdk/go/datadog/provider.go b/sdk/go/datadog/provider.go index 41b8d1d98..017f9b487 100644 --- a/sdk/go/datadog/provider.go +++ b/sdk/go/datadog/provider.go @@ -45,14 +45,14 @@ func NewProvider(ctx *pulumi.Context, type providerArgs struct { // (Required unless validate is false) Datadog API key. This can also be set via the DD_API_KEY environment variable. ApiKey *string `pulumi:"apiKey"` - // The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the - // /api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And - // if you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. + // The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/ + // path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if + // you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. ApiUrl *string `pulumi:"apiUrl"` // (Required unless validate is false) Datadog APP key. This can also be set via the DD_APP_KEY environment variable. AppKey *string `pulumi:"appKey"` // Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key - // and app_keywon't be checked. + // and app_key won't be checked. Validate *bool `pulumi:"validate"` } @@ -60,14 +60,14 @@ type providerArgs struct { type ProviderArgs struct { // (Required unless validate is false) Datadog API key. This can also be set via the DD_API_KEY environment variable. ApiKey pulumi.StringPtrInput - // The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the - // /api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And - // if you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. + // The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/ + // path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if + // you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. ApiUrl pulumi.StringPtrInput // (Required unless validate is false) Datadog APP key. This can also be set via the DD_APP_KEY environment variable. AppKey pulumi.StringPtrInput // Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key - // and app_keywon't be checked. + // and app_key won't be checked. Validate pulumi.BoolPtrInput } diff --git a/sdk/go/datadog/pulumiTypes.go b/sdk/go/datadog/pulumiTypes.go index 234a556fe..aef3ebd9e 100644 --- a/sdk/go/datadog/pulumiTypes.go +++ b/sdk/go/datadog/pulumiTypes.go @@ -430,6 +430,7 @@ type DashboardWidget struct { GroupDefinition *DashboardWidgetGroupDefinition `pulumi:"groupDefinition"` HeatmapDefinition *DashboardWidgetHeatmapDefinition `pulumi:"heatmapDefinition"` HostmapDefinition *DashboardWidgetHostmapDefinition `pulumi:"hostmapDefinition"` + Id *int `pulumi:"id"` IframeDefinition *DashboardWidgetIframeDefinition `pulumi:"iframeDefinition"` ImageDefinition *DashboardWidgetImageDefinition `pulumi:"imageDefinition"` Layout *DashboardWidgetLayout `pulumi:"layout"` @@ -469,6 +470,7 @@ type DashboardWidgetArgs struct { GroupDefinition DashboardWidgetGroupDefinitionPtrInput `pulumi:"groupDefinition"` HeatmapDefinition DashboardWidgetHeatmapDefinitionPtrInput `pulumi:"heatmapDefinition"` HostmapDefinition DashboardWidgetHostmapDefinitionPtrInput `pulumi:"hostmapDefinition"` + Id pulumi.IntPtrInput `pulumi:"id"` IframeDefinition DashboardWidgetIframeDefinitionPtrInput `pulumi:"iframeDefinition"` ImageDefinition DashboardWidgetImageDefinitionPtrInput `pulumi:"imageDefinition"` Layout DashboardWidgetLayoutPtrInput `pulumi:"layout"` @@ -580,6 +582,10 @@ func (o DashboardWidgetOutput) HostmapDefinition() DashboardWidgetHostmapDefinit return o.ApplyT(func(v DashboardWidget) *DashboardWidgetHostmapDefinition { return v.HostmapDefinition }).(DashboardWidgetHostmapDefinitionPtrOutput) } +func (o DashboardWidgetOutput) Id() pulumi.IntPtrOutput { + return o.ApplyT(func(v DashboardWidget) *int { return v.Id }).(pulumi.IntPtrOutput) +} + func (o DashboardWidgetOutput) IframeDefinition() DashboardWidgetIframeDefinitionPtrOutput { return o.ApplyT(func(v DashboardWidget) *DashboardWidgetIframeDefinition { return v.IframeDefinition }).(DashboardWidgetIframeDefinitionPtrOutput) } @@ -10983,6 +10989,7 @@ type DashboardWidgetGroupDefinitionWidget struct { FreeTextDefinition *DashboardWidgetGroupDefinitionWidgetFreeTextDefinition `pulumi:"freeTextDefinition"` HeatmapDefinition *DashboardWidgetGroupDefinitionWidgetHeatmapDefinition `pulumi:"heatmapDefinition"` HostmapDefinition *DashboardWidgetGroupDefinitionWidgetHostmapDefinition `pulumi:"hostmapDefinition"` + Id *int `pulumi:"id"` IframeDefinition *DashboardWidgetGroupDefinitionWidgetIframeDefinition `pulumi:"iframeDefinition"` ImageDefinition *DashboardWidgetGroupDefinitionWidgetImageDefinition `pulumi:"imageDefinition"` Layout *DashboardWidgetGroupDefinitionWidgetLayout `pulumi:"layout"` @@ -11021,6 +11028,7 @@ type DashboardWidgetGroupDefinitionWidgetArgs struct { FreeTextDefinition DashboardWidgetGroupDefinitionWidgetFreeTextDefinitionPtrInput `pulumi:"freeTextDefinition"` HeatmapDefinition DashboardWidgetGroupDefinitionWidgetHeatmapDefinitionPtrInput `pulumi:"heatmapDefinition"` HostmapDefinition DashboardWidgetGroupDefinitionWidgetHostmapDefinitionPtrInput `pulumi:"hostmapDefinition"` + Id pulumi.IntPtrInput `pulumi:"id"` IframeDefinition DashboardWidgetGroupDefinitionWidgetIframeDefinitionPtrInput `pulumi:"iframeDefinition"` ImageDefinition DashboardWidgetGroupDefinitionWidgetImageDefinitionPtrInput `pulumi:"imageDefinition"` Layout DashboardWidgetGroupDefinitionWidgetLayoutPtrInput `pulumi:"layout"` @@ -11148,6 +11156,10 @@ func (o DashboardWidgetGroupDefinitionWidgetOutput) HostmapDefinition() Dashboar }).(DashboardWidgetGroupDefinitionWidgetHostmapDefinitionPtrOutput) } +func (o DashboardWidgetGroupDefinitionWidgetOutput) Id() pulumi.IntPtrOutput { + return o.ApplyT(func(v DashboardWidgetGroupDefinitionWidget) *int { return v.Id }).(pulumi.IntPtrOutput) +} + func (o DashboardWidgetGroupDefinitionWidgetOutput) IframeDefinition() DashboardWidgetGroupDefinitionWidgetIframeDefinitionPtrOutput { return o.ApplyT(func(v DashboardWidgetGroupDefinitionWidget) *DashboardWidgetGroupDefinitionWidgetIframeDefinition { return v.IframeDefinition @@ -109737,6 +109749,192 @@ func (o LogsArchiveAzurePtrOutput) TenantId() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type LogsArchiveAzureArchive struct { + ClientId string `pulumi:"clientId"` + Container string `pulumi:"container"` + Path *string `pulumi:"path"` + StorageAccount string `pulumi:"storageAccount"` + TenantId string `pulumi:"tenantId"` +} + +// LogsArchiveAzureArchiveInput is an input type that accepts LogsArchiveAzureArchiveArgs and LogsArchiveAzureArchiveOutput values. +// You can construct a concrete instance of `LogsArchiveAzureArchiveInput` via: +// +// LogsArchiveAzureArchiveArgs{...} +type LogsArchiveAzureArchiveInput interface { + pulumi.Input + + ToLogsArchiveAzureArchiveOutput() LogsArchiveAzureArchiveOutput + ToLogsArchiveAzureArchiveOutputWithContext(context.Context) LogsArchiveAzureArchiveOutput +} + +type LogsArchiveAzureArchiveArgs struct { + ClientId pulumi.StringInput `pulumi:"clientId"` + Container pulumi.StringInput `pulumi:"container"` + Path pulumi.StringPtrInput `pulumi:"path"` + StorageAccount pulumi.StringInput `pulumi:"storageAccount"` + TenantId pulumi.StringInput `pulumi:"tenantId"` +} + +func (LogsArchiveAzureArchiveArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LogsArchiveAzureArchive)(nil)).Elem() +} + +func (i LogsArchiveAzureArchiveArgs) ToLogsArchiveAzureArchiveOutput() LogsArchiveAzureArchiveOutput { + return i.ToLogsArchiveAzureArchiveOutputWithContext(context.Background()) +} + +func (i LogsArchiveAzureArchiveArgs) ToLogsArchiveAzureArchiveOutputWithContext(ctx context.Context) LogsArchiveAzureArchiveOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsArchiveAzureArchiveOutput) +} + +func (i LogsArchiveAzureArchiveArgs) ToLogsArchiveAzureArchivePtrOutput() LogsArchiveAzureArchivePtrOutput { + return i.ToLogsArchiveAzureArchivePtrOutputWithContext(context.Background()) +} + +func (i LogsArchiveAzureArchiveArgs) ToLogsArchiveAzureArchivePtrOutputWithContext(ctx context.Context) LogsArchiveAzureArchivePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsArchiveAzureArchiveOutput).ToLogsArchiveAzureArchivePtrOutputWithContext(ctx) +} + +// LogsArchiveAzureArchivePtrInput is an input type that accepts LogsArchiveAzureArchiveArgs, LogsArchiveAzureArchivePtr and LogsArchiveAzureArchivePtrOutput values. +// You can construct a concrete instance of `LogsArchiveAzureArchivePtrInput` via: +// +// LogsArchiveAzureArchiveArgs{...} +// +// or: +// +// nil +type LogsArchiveAzureArchivePtrInput interface { + pulumi.Input + + ToLogsArchiveAzureArchivePtrOutput() LogsArchiveAzureArchivePtrOutput + ToLogsArchiveAzureArchivePtrOutputWithContext(context.Context) LogsArchiveAzureArchivePtrOutput +} + +type logsArchiveAzureArchivePtrType LogsArchiveAzureArchiveArgs + +func LogsArchiveAzureArchivePtr(v *LogsArchiveAzureArchiveArgs) LogsArchiveAzureArchivePtrInput { + return (*logsArchiveAzureArchivePtrType)(v) +} + +func (*logsArchiveAzureArchivePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LogsArchiveAzureArchive)(nil)).Elem() +} + +func (i *logsArchiveAzureArchivePtrType) ToLogsArchiveAzureArchivePtrOutput() LogsArchiveAzureArchivePtrOutput { + return i.ToLogsArchiveAzureArchivePtrOutputWithContext(context.Background()) +} + +func (i *logsArchiveAzureArchivePtrType) ToLogsArchiveAzureArchivePtrOutputWithContext(ctx context.Context) LogsArchiveAzureArchivePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsArchiveAzureArchivePtrOutput) +} + +type LogsArchiveAzureArchiveOutput struct{ *pulumi.OutputState } + +func (LogsArchiveAzureArchiveOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogsArchiveAzureArchive)(nil)).Elem() +} + +func (o LogsArchiveAzureArchiveOutput) ToLogsArchiveAzureArchiveOutput() LogsArchiveAzureArchiveOutput { + return o +} + +func (o LogsArchiveAzureArchiveOutput) ToLogsArchiveAzureArchiveOutputWithContext(ctx context.Context) LogsArchiveAzureArchiveOutput { + return o +} + +func (o LogsArchiveAzureArchiveOutput) ToLogsArchiveAzureArchivePtrOutput() LogsArchiveAzureArchivePtrOutput { + return o.ToLogsArchiveAzureArchivePtrOutputWithContext(context.Background()) +} + +func (o LogsArchiveAzureArchiveOutput) ToLogsArchiveAzureArchivePtrOutputWithContext(ctx context.Context) LogsArchiveAzureArchivePtrOutput { + return o.ApplyT(func(v LogsArchiveAzureArchive) *LogsArchiveAzureArchive { + return &v + }).(LogsArchiveAzureArchivePtrOutput) +} +func (o LogsArchiveAzureArchiveOutput) ClientId() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveAzureArchive) string { return v.ClientId }).(pulumi.StringOutput) +} + +func (o LogsArchiveAzureArchiveOutput) Container() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveAzureArchive) string { return v.Container }).(pulumi.StringOutput) +} + +func (o LogsArchiveAzureArchiveOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogsArchiveAzureArchive) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +func (o LogsArchiveAzureArchiveOutput) StorageAccount() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveAzureArchive) string { return v.StorageAccount }).(pulumi.StringOutput) +} + +func (o LogsArchiveAzureArchiveOutput) TenantId() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveAzureArchive) string { return v.TenantId }).(pulumi.StringOutput) +} + +type LogsArchiveAzureArchivePtrOutput struct{ *pulumi.OutputState } + +func (LogsArchiveAzureArchivePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogsArchiveAzureArchive)(nil)).Elem() +} + +func (o LogsArchiveAzureArchivePtrOutput) ToLogsArchiveAzureArchivePtrOutput() LogsArchiveAzureArchivePtrOutput { + return o +} + +func (o LogsArchiveAzureArchivePtrOutput) ToLogsArchiveAzureArchivePtrOutputWithContext(ctx context.Context) LogsArchiveAzureArchivePtrOutput { + return o +} + +func (o LogsArchiveAzureArchivePtrOutput) Elem() LogsArchiveAzureArchiveOutput { + return o.ApplyT(func(v *LogsArchiveAzureArchive) LogsArchiveAzureArchive { return *v }).(LogsArchiveAzureArchiveOutput) +} + +func (o LogsArchiveAzureArchivePtrOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveAzureArchive) *string { + if v == nil { + return nil + } + return &v.ClientId + }).(pulumi.StringPtrOutput) +} + +func (o LogsArchiveAzureArchivePtrOutput) Container() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveAzureArchive) *string { + if v == nil { + return nil + } + return &v.Container + }).(pulumi.StringPtrOutput) +} + +func (o LogsArchiveAzureArchivePtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveAzureArchive) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +func (o LogsArchiveAzureArchivePtrOutput) StorageAccount() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveAzureArchive) *string { + if v == nil { + return nil + } + return &v.StorageAccount + }).(pulumi.StringPtrOutput) +} + +func (o LogsArchiveAzureArchivePtrOutput) TenantId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveAzureArchive) *string { + if v == nil { + return nil + } + return &v.TenantId + }).(pulumi.StringPtrOutput) +} + type LogsArchiveGcs struct { Bucket string `pulumi:"bucket"` ClientEmail string `pulumi:"clientEmail"` @@ -109908,13 +110106,182 @@ func (o LogsArchiveGcsPtrOutput) ProjectId() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -type LogsArchiveS3 struct { - AccountId string `pulumi:"accountId"` +type LogsArchiveGcsArchive struct { Bucket string `pulumi:"bucket"` ClientEmail string `pulumi:"clientEmail"` Path string `pulumi:"path"` ProjectId string `pulumi:"projectId"` - RoleName string `pulumi:"roleName"` +} + +// LogsArchiveGcsArchiveInput is an input type that accepts LogsArchiveGcsArchiveArgs and LogsArchiveGcsArchiveOutput values. +// You can construct a concrete instance of `LogsArchiveGcsArchiveInput` via: +// +// LogsArchiveGcsArchiveArgs{...} +type LogsArchiveGcsArchiveInput interface { + pulumi.Input + + ToLogsArchiveGcsArchiveOutput() LogsArchiveGcsArchiveOutput + ToLogsArchiveGcsArchiveOutputWithContext(context.Context) LogsArchiveGcsArchiveOutput +} + +type LogsArchiveGcsArchiveArgs struct { + Bucket pulumi.StringInput `pulumi:"bucket"` + ClientEmail pulumi.StringInput `pulumi:"clientEmail"` + Path pulumi.StringInput `pulumi:"path"` + ProjectId pulumi.StringInput `pulumi:"projectId"` +} + +func (LogsArchiveGcsArchiveArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LogsArchiveGcsArchive)(nil)).Elem() +} + +func (i LogsArchiveGcsArchiveArgs) ToLogsArchiveGcsArchiveOutput() LogsArchiveGcsArchiveOutput { + return i.ToLogsArchiveGcsArchiveOutputWithContext(context.Background()) +} + +func (i LogsArchiveGcsArchiveArgs) ToLogsArchiveGcsArchiveOutputWithContext(ctx context.Context) LogsArchiveGcsArchiveOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsArchiveGcsArchiveOutput) +} + +func (i LogsArchiveGcsArchiveArgs) ToLogsArchiveGcsArchivePtrOutput() LogsArchiveGcsArchivePtrOutput { + return i.ToLogsArchiveGcsArchivePtrOutputWithContext(context.Background()) +} + +func (i LogsArchiveGcsArchiveArgs) ToLogsArchiveGcsArchivePtrOutputWithContext(ctx context.Context) LogsArchiveGcsArchivePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsArchiveGcsArchiveOutput).ToLogsArchiveGcsArchivePtrOutputWithContext(ctx) +} + +// LogsArchiveGcsArchivePtrInput is an input type that accepts LogsArchiveGcsArchiveArgs, LogsArchiveGcsArchivePtr and LogsArchiveGcsArchivePtrOutput values. +// You can construct a concrete instance of `LogsArchiveGcsArchivePtrInput` via: +// +// LogsArchiveGcsArchiveArgs{...} +// +// or: +// +// nil +type LogsArchiveGcsArchivePtrInput interface { + pulumi.Input + + ToLogsArchiveGcsArchivePtrOutput() LogsArchiveGcsArchivePtrOutput + ToLogsArchiveGcsArchivePtrOutputWithContext(context.Context) LogsArchiveGcsArchivePtrOutput +} + +type logsArchiveGcsArchivePtrType LogsArchiveGcsArchiveArgs + +func LogsArchiveGcsArchivePtr(v *LogsArchiveGcsArchiveArgs) LogsArchiveGcsArchivePtrInput { + return (*logsArchiveGcsArchivePtrType)(v) +} + +func (*logsArchiveGcsArchivePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LogsArchiveGcsArchive)(nil)).Elem() +} + +func (i *logsArchiveGcsArchivePtrType) ToLogsArchiveGcsArchivePtrOutput() LogsArchiveGcsArchivePtrOutput { + return i.ToLogsArchiveGcsArchivePtrOutputWithContext(context.Background()) +} + +func (i *logsArchiveGcsArchivePtrType) ToLogsArchiveGcsArchivePtrOutputWithContext(ctx context.Context) LogsArchiveGcsArchivePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsArchiveGcsArchivePtrOutput) +} + +type LogsArchiveGcsArchiveOutput struct{ *pulumi.OutputState } + +func (LogsArchiveGcsArchiveOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogsArchiveGcsArchive)(nil)).Elem() +} + +func (o LogsArchiveGcsArchiveOutput) ToLogsArchiveGcsArchiveOutput() LogsArchiveGcsArchiveOutput { + return o +} + +func (o LogsArchiveGcsArchiveOutput) ToLogsArchiveGcsArchiveOutputWithContext(ctx context.Context) LogsArchiveGcsArchiveOutput { + return o +} + +func (o LogsArchiveGcsArchiveOutput) ToLogsArchiveGcsArchivePtrOutput() LogsArchiveGcsArchivePtrOutput { + return o.ToLogsArchiveGcsArchivePtrOutputWithContext(context.Background()) +} + +func (o LogsArchiveGcsArchiveOutput) ToLogsArchiveGcsArchivePtrOutputWithContext(ctx context.Context) LogsArchiveGcsArchivePtrOutput { + return o.ApplyT(func(v LogsArchiveGcsArchive) *LogsArchiveGcsArchive { + return &v + }).(LogsArchiveGcsArchivePtrOutput) +} +func (o LogsArchiveGcsArchiveOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveGcsArchive) string { return v.Bucket }).(pulumi.StringOutput) +} + +func (o LogsArchiveGcsArchiveOutput) ClientEmail() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveGcsArchive) string { return v.ClientEmail }).(pulumi.StringOutput) +} + +func (o LogsArchiveGcsArchiveOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveGcsArchive) string { return v.Path }).(pulumi.StringOutput) +} + +func (o LogsArchiveGcsArchiveOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveGcsArchive) string { return v.ProjectId }).(pulumi.StringOutput) +} + +type LogsArchiveGcsArchivePtrOutput struct{ *pulumi.OutputState } + +func (LogsArchiveGcsArchivePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogsArchiveGcsArchive)(nil)).Elem() +} + +func (o LogsArchiveGcsArchivePtrOutput) ToLogsArchiveGcsArchivePtrOutput() LogsArchiveGcsArchivePtrOutput { + return o +} + +func (o LogsArchiveGcsArchivePtrOutput) ToLogsArchiveGcsArchivePtrOutputWithContext(ctx context.Context) LogsArchiveGcsArchivePtrOutput { + return o +} + +func (o LogsArchiveGcsArchivePtrOutput) Elem() LogsArchiveGcsArchiveOutput { + return o.ApplyT(func(v *LogsArchiveGcsArchive) LogsArchiveGcsArchive { return *v }).(LogsArchiveGcsArchiveOutput) +} + +func (o LogsArchiveGcsArchivePtrOutput) Bucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveGcsArchive) *string { + if v == nil { + return nil + } + return &v.Bucket + }).(pulumi.StringPtrOutput) +} + +func (o LogsArchiveGcsArchivePtrOutput) ClientEmail() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveGcsArchive) *string { + if v == nil { + return nil + } + return &v.ClientEmail + }).(pulumi.StringPtrOutput) +} + +func (o LogsArchiveGcsArchivePtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveGcsArchive) *string { + if v == nil { + return nil + } + return &v.Path + }).(pulumi.StringPtrOutput) +} + +func (o LogsArchiveGcsArchivePtrOutput) ProjectId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveGcsArchive) *string { + if v == nil { + return nil + } + return &v.ProjectId + }).(pulumi.StringPtrOutput) +} + +type LogsArchiveS3 struct { + AccountId string `pulumi:"accountId"` + Bucket string `pulumi:"bucket"` + Path string `pulumi:"path"` + RoleName string `pulumi:"roleName"` } // LogsArchiveS3Input is an input type that accepts LogsArchiveS3Args and LogsArchiveS3Output values. @@ -109929,12 +110296,10 @@ type LogsArchiveS3Input interface { } type LogsArchiveS3Args struct { - AccountId pulumi.StringInput `pulumi:"accountId"` - Bucket pulumi.StringInput `pulumi:"bucket"` - ClientEmail pulumi.StringInput `pulumi:"clientEmail"` - Path pulumi.StringInput `pulumi:"path"` - ProjectId pulumi.StringInput `pulumi:"projectId"` - RoleName pulumi.StringInput `pulumi:"roleName"` + AccountId pulumi.StringInput `pulumi:"accountId"` + Bucket pulumi.StringInput `pulumi:"bucket"` + Path pulumi.StringInput `pulumi:"path"` + RoleName pulumi.StringInput `pulumi:"roleName"` } func (LogsArchiveS3Args) ElementType() reflect.Type { @@ -110021,18 +110386,10 @@ func (o LogsArchiveS3Output) Bucket() pulumi.StringOutput { return o.ApplyT(func(v LogsArchiveS3) string { return v.Bucket }).(pulumi.StringOutput) } -func (o LogsArchiveS3Output) ClientEmail() pulumi.StringOutput { - return o.ApplyT(func(v LogsArchiveS3) string { return v.ClientEmail }).(pulumi.StringOutput) -} - func (o LogsArchiveS3Output) Path() pulumi.StringOutput { return o.ApplyT(func(v LogsArchiveS3) string { return v.Path }).(pulumi.StringOutput) } -func (o LogsArchiveS3Output) ProjectId() pulumi.StringOutput { - return o.ApplyT(func(v LogsArchiveS3) string { return v.ProjectId }).(pulumi.StringOutput) -} - func (o LogsArchiveS3Output) RoleName() pulumi.StringOutput { return o.ApplyT(func(v LogsArchiveS3) string { return v.RoleName }).(pulumi.StringOutput) } @@ -110073,35 +110430,188 @@ func (o LogsArchiveS3PtrOutput) Bucket() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -func (o LogsArchiveS3PtrOutput) ClientEmail() pulumi.StringPtrOutput { +func (o LogsArchiveS3PtrOutput) Path() pulumi.StringPtrOutput { return o.ApplyT(func(v *LogsArchiveS3) *string { if v == nil { return nil } - return &v.ClientEmail + return &v.Path }).(pulumi.StringPtrOutput) } -func (o LogsArchiveS3PtrOutput) Path() pulumi.StringPtrOutput { +func (o LogsArchiveS3PtrOutput) RoleName() pulumi.StringPtrOutput { return o.ApplyT(func(v *LogsArchiveS3) *string { if v == nil { return nil } - return &v.Path + return &v.RoleName }).(pulumi.StringPtrOutput) } -func (o LogsArchiveS3PtrOutput) ProjectId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogsArchiveS3) *string { +type LogsArchiveS3Archive struct { + AccountId string `pulumi:"accountId"` + Bucket string `pulumi:"bucket"` + Path string `pulumi:"path"` + RoleName string `pulumi:"roleName"` +} + +// LogsArchiveS3ArchiveInput is an input type that accepts LogsArchiveS3ArchiveArgs and LogsArchiveS3ArchiveOutput values. +// You can construct a concrete instance of `LogsArchiveS3ArchiveInput` via: +// +// LogsArchiveS3ArchiveArgs{...} +type LogsArchiveS3ArchiveInput interface { + pulumi.Input + + ToLogsArchiveS3ArchiveOutput() LogsArchiveS3ArchiveOutput + ToLogsArchiveS3ArchiveOutputWithContext(context.Context) LogsArchiveS3ArchiveOutput +} + +type LogsArchiveS3ArchiveArgs struct { + AccountId pulumi.StringInput `pulumi:"accountId"` + Bucket pulumi.StringInput `pulumi:"bucket"` + Path pulumi.StringInput `pulumi:"path"` + RoleName pulumi.StringInput `pulumi:"roleName"` +} + +func (LogsArchiveS3ArchiveArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LogsArchiveS3Archive)(nil)).Elem() +} + +func (i LogsArchiveS3ArchiveArgs) ToLogsArchiveS3ArchiveOutput() LogsArchiveS3ArchiveOutput { + return i.ToLogsArchiveS3ArchiveOutputWithContext(context.Background()) +} + +func (i LogsArchiveS3ArchiveArgs) ToLogsArchiveS3ArchiveOutputWithContext(ctx context.Context) LogsArchiveS3ArchiveOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsArchiveS3ArchiveOutput) +} + +func (i LogsArchiveS3ArchiveArgs) ToLogsArchiveS3ArchivePtrOutput() LogsArchiveS3ArchivePtrOutput { + return i.ToLogsArchiveS3ArchivePtrOutputWithContext(context.Background()) +} + +func (i LogsArchiveS3ArchiveArgs) ToLogsArchiveS3ArchivePtrOutputWithContext(ctx context.Context) LogsArchiveS3ArchivePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsArchiveS3ArchiveOutput).ToLogsArchiveS3ArchivePtrOutputWithContext(ctx) +} + +// LogsArchiveS3ArchivePtrInput is an input type that accepts LogsArchiveS3ArchiveArgs, LogsArchiveS3ArchivePtr and LogsArchiveS3ArchivePtrOutput values. +// You can construct a concrete instance of `LogsArchiveS3ArchivePtrInput` via: +// +// LogsArchiveS3ArchiveArgs{...} +// +// or: +// +// nil +type LogsArchiveS3ArchivePtrInput interface { + pulumi.Input + + ToLogsArchiveS3ArchivePtrOutput() LogsArchiveS3ArchivePtrOutput + ToLogsArchiveS3ArchivePtrOutputWithContext(context.Context) LogsArchiveS3ArchivePtrOutput +} + +type logsArchiveS3ArchivePtrType LogsArchiveS3ArchiveArgs + +func LogsArchiveS3ArchivePtr(v *LogsArchiveS3ArchiveArgs) LogsArchiveS3ArchivePtrInput { + return (*logsArchiveS3ArchivePtrType)(v) +} + +func (*logsArchiveS3ArchivePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LogsArchiveS3Archive)(nil)).Elem() +} + +func (i *logsArchiveS3ArchivePtrType) ToLogsArchiveS3ArchivePtrOutput() LogsArchiveS3ArchivePtrOutput { + return i.ToLogsArchiveS3ArchivePtrOutputWithContext(context.Background()) +} + +func (i *logsArchiveS3ArchivePtrType) ToLogsArchiveS3ArchivePtrOutputWithContext(ctx context.Context) LogsArchiveS3ArchivePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsArchiveS3ArchivePtrOutput) +} + +type LogsArchiveS3ArchiveOutput struct{ *pulumi.OutputState } + +func (LogsArchiveS3ArchiveOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogsArchiveS3Archive)(nil)).Elem() +} + +func (o LogsArchiveS3ArchiveOutput) ToLogsArchiveS3ArchiveOutput() LogsArchiveS3ArchiveOutput { + return o +} + +func (o LogsArchiveS3ArchiveOutput) ToLogsArchiveS3ArchiveOutputWithContext(ctx context.Context) LogsArchiveS3ArchiveOutput { + return o +} + +func (o LogsArchiveS3ArchiveOutput) ToLogsArchiveS3ArchivePtrOutput() LogsArchiveS3ArchivePtrOutput { + return o.ToLogsArchiveS3ArchivePtrOutputWithContext(context.Background()) +} + +func (o LogsArchiveS3ArchiveOutput) ToLogsArchiveS3ArchivePtrOutputWithContext(ctx context.Context) LogsArchiveS3ArchivePtrOutput { + return o.ApplyT(func(v LogsArchiveS3Archive) *LogsArchiveS3Archive { + return &v + }).(LogsArchiveS3ArchivePtrOutput) +} +func (o LogsArchiveS3ArchiveOutput) AccountId() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveS3Archive) string { return v.AccountId }).(pulumi.StringOutput) +} + +func (o LogsArchiveS3ArchiveOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveS3Archive) string { return v.Bucket }).(pulumi.StringOutput) +} + +func (o LogsArchiveS3ArchiveOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveS3Archive) string { return v.Path }).(pulumi.StringOutput) +} + +func (o LogsArchiveS3ArchiveOutput) RoleName() pulumi.StringOutput { + return o.ApplyT(func(v LogsArchiveS3Archive) string { return v.RoleName }).(pulumi.StringOutput) +} + +type LogsArchiveS3ArchivePtrOutput struct{ *pulumi.OutputState } + +func (LogsArchiveS3ArchivePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogsArchiveS3Archive)(nil)).Elem() +} + +func (o LogsArchiveS3ArchivePtrOutput) ToLogsArchiveS3ArchivePtrOutput() LogsArchiveS3ArchivePtrOutput { + return o +} + +func (o LogsArchiveS3ArchivePtrOutput) ToLogsArchiveS3ArchivePtrOutputWithContext(ctx context.Context) LogsArchiveS3ArchivePtrOutput { + return o +} + +func (o LogsArchiveS3ArchivePtrOutput) Elem() LogsArchiveS3ArchiveOutput { + return o.ApplyT(func(v *LogsArchiveS3Archive) LogsArchiveS3Archive { return *v }).(LogsArchiveS3ArchiveOutput) +} + +func (o LogsArchiveS3ArchivePtrOutput) AccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveS3Archive) *string { if v == nil { return nil } - return &v.ProjectId + return &v.AccountId }).(pulumi.StringPtrOutput) } -func (o LogsArchiveS3PtrOutput) RoleName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LogsArchiveS3) *string { +func (o LogsArchiveS3ArchivePtrOutput) Bucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveS3Archive) *string { + if v == nil { + return nil + } + return &v.Bucket + }).(pulumi.StringPtrOutput) +} + +func (o LogsArchiveS3ArchivePtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveS3Archive) *string { + if v == nil { + return nil + } + return &v.Path + }).(pulumi.StringPtrOutput) +} + +func (o LogsArchiveS3ArchivePtrOutput) RoleName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsArchiveS3Archive) *string { if v == nil { return nil } @@ -116818,11 +117328,718 @@ func (o LogsIndexFilterArrayOutput) Index(i pulumi.IntInput) LogsIndexFilterOutp }).(LogsIndexFilterOutput) } +type LogsMetricCompute struct { + AggregationType string `pulumi:"aggregationType"` + Path *string `pulumi:"path"` +} + +// LogsMetricComputeInput is an input type that accepts LogsMetricComputeArgs and LogsMetricComputeOutput values. +// You can construct a concrete instance of `LogsMetricComputeInput` via: +// +// LogsMetricComputeArgs{...} +type LogsMetricComputeInput interface { + pulumi.Input + + ToLogsMetricComputeOutput() LogsMetricComputeOutput + ToLogsMetricComputeOutputWithContext(context.Context) LogsMetricComputeOutput +} + +type LogsMetricComputeArgs struct { + AggregationType pulumi.StringInput `pulumi:"aggregationType"` + Path pulumi.StringPtrInput `pulumi:"path"` +} + +func (LogsMetricComputeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LogsMetricCompute)(nil)).Elem() +} + +func (i LogsMetricComputeArgs) ToLogsMetricComputeOutput() LogsMetricComputeOutput { + return i.ToLogsMetricComputeOutputWithContext(context.Background()) +} + +func (i LogsMetricComputeArgs) ToLogsMetricComputeOutputWithContext(ctx context.Context) LogsMetricComputeOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsMetricComputeOutput) +} + +func (i LogsMetricComputeArgs) ToLogsMetricComputePtrOutput() LogsMetricComputePtrOutput { + return i.ToLogsMetricComputePtrOutputWithContext(context.Background()) +} + +func (i LogsMetricComputeArgs) ToLogsMetricComputePtrOutputWithContext(ctx context.Context) LogsMetricComputePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsMetricComputeOutput).ToLogsMetricComputePtrOutputWithContext(ctx) +} + +// LogsMetricComputePtrInput is an input type that accepts LogsMetricComputeArgs, LogsMetricComputePtr and LogsMetricComputePtrOutput values. +// You can construct a concrete instance of `LogsMetricComputePtrInput` via: +// +// LogsMetricComputeArgs{...} +// +// or: +// +// nil +type LogsMetricComputePtrInput interface { + pulumi.Input + + ToLogsMetricComputePtrOutput() LogsMetricComputePtrOutput + ToLogsMetricComputePtrOutputWithContext(context.Context) LogsMetricComputePtrOutput +} + +type logsMetricComputePtrType LogsMetricComputeArgs + +func LogsMetricComputePtr(v *LogsMetricComputeArgs) LogsMetricComputePtrInput { + return (*logsMetricComputePtrType)(v) +} + +func (*logsMetricComputePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LogsMetricCompute)(nil)).Elem() +} + +func (i *logsMetricComputePtrType) ToLogsMetricComputePtrOutput() LogsMetricComputePtrOutput { + return i.ToLogsMetricComputePtrOutputWithContext(context.Background()) +} + +func (i *logsMetricComputePtrType) ToLogsMetricComputePtrOutputWithContext(ctx context.Context) LogsMetricComputePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsMetricComputePtrOutput) +} + +type LogsMetricComputeOutput struct{ *pulumi.OutputState } + +func (LogsMetricComputeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogsMetricCompute)(nil)).Elem() +} + +func (o LogsMetricComputeOutput) ToLogsMetricComputeOutput() LogsMetricComputeOutput { + return o +} + +func (o LogsMetricComputeOutput) ToLogsMetricComputeOutputWithContext(ctx context.Context) LogsMetricComputeOutput { + return o +} + +func (o LogsMetricComputeOutput) ToLogsMetricComputePtrOutput() LogsMetricComputePtrOutput { + return o.ToLogsMetricComputePtrOutputWithContext(context.Background()) +} + +func (o LogsMetricComputeOutput) ToLogsMetricComputePtrOutputWithContext(ctx context.Context) LogsMetricComputePtrOutput { + return o.ApplyT(func(v LogsMetricCompute) *LogsMetricCompute { + return &v + }).(LogsMetricComputePtrOutput) +} +func (o LogsMetricComputeOutput) AggregationType() pulumi.StringOutput { + return o.ApplyT(func(v LogsMetricCompute) string { return v.AggregationType }).(pulumi.StringOutput) +} + +func (o LogsMetricComputeOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogsMetricCompute) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +type LogsMetricComputePtrOutput struct{ *pulumi.OutputState } + +func (LogsMetricComputePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogsMetricCompute)(nil)).Elem() +} + +func (o LogsMetricComputePtrOutput) ToLogsMetricComputePtrOutput() LogsMetricComputePtrOutput { + return o +} + +func (o LogsMetricComputePtrOutput) ToLogsMetricComputePtrOutputWithContext(ctx context.Context) LogsMetricComputePtrOutput { + return o +} + +func (o LogsMetricComputePtrOutput) Elem() LogsMetricComputeOutput { + return o.ApplyT(func(v *LogsMetricCompute) LogsMetricCompute { return *v }).(LogsMetricComputeOutput) +} + +func (o LogsMetricComputePtrOutput) AggregationType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsMetricCompute) *string { + if v == nil { + return nil + } + return &v.AggregationType + }).(pulumi.StringPtrOutput) +} + +func (o LogsMetricComputePtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsMetricCompute) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +type LogsMetricFilter struct { + Query string `pulumi:"query"` +} + +// LogsMetricFilterInput is an input type that accepts LogsMetricFilterArgs and LogsMetricFilterOutput values. +// You can construct a concrete instance of `LogsMetricFilterInput` via: +// +// LogsMetricFilterArgs{...} +type LogsMetricFilterInput interface { + pulumi.Input + + ToLogsMetricFilterOutput() LogsMetricFilterOutput + ToLogsMetricFilterOutputWithContext(context.Context) LogsMetricFilterOutput +} + +type LogsMetricFilterArgs struct { + Query pulumi.StringInput `pulumi:"query"` +} + +func (LogsMetricFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LogsMetricFilter)(nil)).Elem() +} + +func (i LogsMetricFilterArgs) ToLogsMetricFilterOutput() LogsMetricFilterOutput { + return i.ToLogsMetricFilterOutputWithContext(context.Background()) +} + +func (i LogsMetricFilterArgs) ToLogsMetricFilterOutputWithContext(ctx context.Context) LogsMetricFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsMetricFilterOutput) +} + +func (i LogsMetricFilterArgs) ToLogsMetricFilterPtrOutput() LogsMetricFilterPtrOutput { + return i.ToLogsMetricFilterPtrOutputWithContext(context.Background()) +} + +func (i LogsMetricFilterArgs) ToLogsMetricFilterPtrOutputWithContext(ctx context.Context) LogsMetricFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsMetricFilterOutput).ToLogsMetricFilterPtrOutputWithContext(ctx) +} + +// LogsMetricFilterPtrInput is an input type that accepts LogsMetricFilterArgs, LogsMetricFilterPtr and LogsMetricFilterPtrOutput values. +// You can construct a concrete instance of `LogsMetricFilterPtrInput` via: +// +// LogsMetricFilterArgs{...} +// +// or: +// +// nil +type LogsMetricFilterPtrInput interface { + pulumi.Input + + ToLogsMetricFilterPtrOutput() LogsMetricFilterPtrOutput + ToLogsMetricFilterPtrOutputWithContext(context.Context) LogsMetricFilterPtrOutput +} + +type logsMetricFilterPtrType LogsMetricFilterArgs + +func LogsMetricFilterPtr(v *LogsMetricFilterArgs) LogsMetricFilterPtrInput { + return (*logsMetricFilterPtrType)(v) +} + +func (*logsMetricFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LogsMetricFilter)(nil)).Elem() +} + +func (i *logsMetricFilterPtrType) ToLogsMetricFilterPtrOutput() LogsMetricFilterPtrOutput { + return i.ToLogsMetricFilterPtrOutputWithContext(context.Background()) +} + +func (i *logsMetricFilterPtrType) ToLogsMetricFilterPtrOutputWithContext(ctx context.Context) LogsMetricFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsMetricFilterPtrOutput) +} + +type LogsMetricFilterOutput struct{ *pulumi.OutputState } + +func (LogsMetricFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogsMetricFilter)(nil)).Elem() +} + +func (o LogsMetricFilterOutput) ToLogsMetricFilterOutput() LogsMetricFilterOutput { + return o +} + +func (o LogsMetricFilterOutput) ToLogsMetricFilterOutputWithContext(ctx context.Context) LogsMetricFilterOutput { + return o +} + +func (o LogsMetricFilterOutput) ToLogsMetricFilterPtrOutput() LogsMetricFilterPtrOutput { + return o.ToLogsMetricFilterPtrOutputWithContext(context.Background()) +} + +func (o LogsMetricFilterOutput) ToLogsMetricFilterPtrOutputWithContext(ctx context.Context) LogsMetricFilterPtrOutput { + return o.ApplyT(func(v LogsMetricFilter) *LogsMetricFilter { + return &v + }).(LogsMetricFilterPtrOutput) +} +func (o LogsMetricFilterOutput) Query() pulumi.StringOutput { + return o.ApplyT(func(v LogsMetricFilter) string { return v.Query }).(pulumi.StringOutput) +} + +type LogsMetricFilterPtrOutput struct{ *pulumi.OutputState } + +func (LogsMetricFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogsMetricFilter)(nil)).Elem() +} + +func (o LogsMetricFilterPtrOutput) ToLogsMetricFilterPtrOutput() LogsMetricFilterPtrOutput { + return o +} + +func (o LogsMetricFilterPtrOutput) ToLogsMetricFilterPtrOutputWithContext(ctx context.Context) LogsMetricFilterPtrOutput { + return o +} + +func (o LogsMetricFilterPtrOutput) Elem() LogsMetricFilterOutput { + return o.ApplyT(func(v *LogsMetricFilter) LogsMetricFilter { return *v }).(LogsMetricFilterOutput) +} + +func (o LogsMetricFilterPtrOutput) Query() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogsMetricFilter) *string { + if v == nil { + return nil + } + return &v.Query + }).(pulumi.StringPtrOutput) +} + +type LogsMetricGroupBy struct { + Path string `pulumi:"path"` + TagName string `pulumi:"tagName"` +} + +// LogsMetricGroupByInput is an input type that accepts LogsMetricGroupByArgs and LogsMetricGroupByOutput values. +// You can construct a concrete instance of `LogsMetricGroupByInput` via: +// +// LogsMetricGroupByArgs{...} +type LogsMetricGroupByInput interface { + pulumi.Input + + ToLogsMetricGroupByOutput() LogsMetricGroupByOutput + ToLogsMetricGroupByOutputWithContext(context.Context) LogsMetricGroupByOutput +} + +type LogsMetricGroupByArgs struct { + Path pulumi.StringInput `pulumi:"path"` + TagName pulumi.StringInput `pulumi:"tagName"` +} + +func (LogsMetricGroupByArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LogsMetricGroupBy)(nil)).Elem() +} + +func (i LogsMetricGroupByArgs) ToLogsMetricGroupByOutput() LogsMetricGroupByOutput { + return i.ToLogsMetricGroupByOutputWithContext(context.Background()) +} + +func (i LogsMetricGroupByArgs) ToLogsMetricGroupByOutputWithContext(ctx context.Context) LogsMetricGroupByOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsMetricGroupByOutput) +} + +// LogsMetricGroupByArrayInput is an input type that accepts LogsMetricGroupByArray and LogsMetricGroupByArrayOutput values. +// You can construct a concrete instance of `LogsMetricGroupByArrayInput` via: +// +// LogsMetricGroupByArray{ LogsMetricGroupByArgs{...} } +type LogsMetricGroupByArrayInput interface { + pulumi.Input + + ToLogsMetricGroupByArrayOutput() LogsMetricGroupByArrayOutput + ToLogsMetricGroupByArrayOutputWithContext(context.Context) LogsMetricGroupByArrayOutput +} + +type LogsMetricGroupByArray []LogsMetricGroupByInput + +func (LogsMetricGroupByArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LogsMetricGroupBy)(nil)).Elem() +} + +func (i LogsMetricGroupByArray) ToLogsMetricGroupByArrayOutput() LogsMetricGroupByArrayOutput { + return i.ToLogsMetricGroupByArrayOutputWithContext(context.Background()) +} + +func (i LogsMetricGroupByArray) ToLogsMetricGroupByArrayOutputWithContext(ctx context.Context) LogsMetricGroupByArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogsMetricGroupByArrayOutput) +} + +type LogsMetricGroupByOutput struct{ *pulumi.OutputState } + +func (LogsMetricGroupByOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogsMetricGroupBy)(nil)).Elem() +} + +func (o LogsMetricGroupByOutput) ToLogsMetricGroupByOutput() LogsMetricGroupByOutput { + return o +} + +func (o LogsMetricGroupByOutput) ToLogsMetricGroupByOutputWithContext(ctx context.Context) LogsMetricGroupByOutput { + return o +} + +func (o LogsMetricGroupByOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v LogsMetricGroupBy) string { return v.Path }).(pulumi.StringOutput) +} + +func (o LogsMetricGroupByOutput) TagName() pulumi.StringOutput { + return o.ApplyT(func(v LogsMetricGroupBy) string { return v.TagName }).(pulumi.StringOutput) +} + +type LogsMetricGroupByArrayOutput struct{ *pulumi.OutputState } + +func (LogsMetricGroupByArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LogsMetricGroupBy)(nil)).Elem() +} + +func (o LogsMetricGroupByArrayOutput) ToLogsMetricGroupByArrayOutput() LogsMetricGroupByArrayOutput { + return o +} + +func (o LogsMetricGroupByArrayOutput) ToLogsMetricGroupByArrayOutputWithContext(ctx context.Context) LogsMetricGroupByArrayOutput { + return o +} + +func (o LogsMetricGroupByArrayOutput) Index(i pulumi.IntInput) LogsMetricGroupByOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LogsMetricGroupBy { + return vs[0].([]LogsMetricGroupBy)[vs[1].(int)] + }).(LogsMetricGroupByOutput) +} + +type MonitorMonitorThresholdWindows struct { + RecoveryWindow *string `pulumi:"recoveryWindow"` + TriggerWindow *string `pulumi:"triggerWindow"` +} + +// MonitorMonitorThresholdWindowsInput is an input type that accepts MonitorMonitorThresholdWindowsArgs and MonitorMonitorThresholdWindowsOutput values. +// You can construct a concrete instance of `MonitorMonitorThresholdWindowsInput` via: +// +// MonitorMonitorThresholdWindowsArgs{...} +type MonitorMonitorThresholdWindowsInput interface { + pulumi.Input + + ToMonitorMonitorThresholdWindowsOutput() MonitorMonitorThresholdWindowsOutput + ToMonitorMonitorThresholdWindowsOutputWithContext(context.Context) MonitorMonitorThresholdWindowsOutput +} + +type MonitorMonitorThresholdWindowsArgs struct { + RecoveryWindow pulumi.StringPtrInput `pulumi:"recoveryWindow"` + TriggerWindow pulumi.StringPtrInput `pulumi:"triggerWindow"` +} + +func (MonitorMonitorThresholdWindowsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MonitorMonitorThresholdWindows)(nil)).Elem() +} + +func (i MonitorMonitorThresholdWindowsArgs) ToMonitorMonitorThresholdWindowsOutput() MonitorMonitorThresholdWindowsOutput { + return i.ToMonitorMonitorThresholdWindowsOutputWithContext(context.Background()) +} + +func (i MonitorMonitorThresholdWindowsArgs) ToMonitorMonitorThresholdWindowsOutputWithContext(ctx context.Context) MonitorMonitorThresholdWindowsOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorMonitorThresholdWindowsOutput) +} + +func (i MonitorMonitorThresholdWindowsArgs) ToMonitorMonitorThresholdWindowsPtrOutput() MonitorMonitorThresholdWindowsPtrOutput { + return i.ToMonitorMonitorThresholdWindowsPtrOutputWithContext(context.Background()) +} + +func (i MonitorMonitorThresholdWindowsArgs) ToMonitorMonitorThresholdWindowsPtrOutputWithContext(ctx context.Context) MonitorMonitorThresholdWindowsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorMonitorThresholdWindowsOutput).ToMonitorMonitorThresholdWindowsPtrOutputWithContext(ctx) +} + +// MonitorMonitorThresholdWindowsPtrInput is an input type that accepts MonitorMonitorThresholdWindowsArgs, MonitorMonitorThresholdWindowsPtr and MonitorMonitorThresholdWindowsPtrOutput values. +// You can construct a concrete instance of `MonitorMonitorThresholdWindowsPtrInput` via: +// +// MonitorMonitorThresholdWindowsArgs{...} +// +// or: +// +// nil +type MonitorMonitorThresholdWindowsPtrInput interface { + pulumi.Input + + ToMonitorMonitorThresholdWindowsPtrOutput() MonitorMonitorThresholdWindowsPtrOutput + ToMonitorMonitorThresholdWindowsPtrOutputWithContext(context.Context) MonitorMonitorThresholdWindowsPtrOutput +} + +type monitorMonitorThresholdWindowsPtrType MonitorMonitorThresholdWindowsArgs + +func MonitorMonitorThresholdWindowsPtr(v *MonitorMonitorThresholdWindowsArgs) MonitorMonitorThresholdWindowsPtrInput { + return (*monitorMonitorThresholdWindowsPtrType)(v) +} + +func (*monitorMonitorThresholdWindowsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MonitorMonitorThresholdWindows)(nil)).Elem() +} + +func (i *monitorMonitorThresholdWindowsPtrType) ToMonitorMonitorThresholdWindowsPtrOutput() MonitorMonitorThresholdWindowsPtrOutput { + return i.ToMonitorMonitorThresholdWindowsPtrOutputWithContext(context.Background()) +} + +func (i *monitorMonitorThresholdWindowsPtrType) ToMonitorMonitorThresholdWindowsPtrOutputWithContext(ctx context.Context) MonitorMonitorThresholdWindowsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorMonitorThresholdWindowsPtrOutput) +} + +type MonitorMonitorThresholdWindowsOutput struct{ *pulumi.OutputState } + +func (MonitorMonitorThresholdWindowsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MonitorMonitorThresholdWindows)(nil)).Elem() +} + +func (o MonitorMonitorThresholdWindowsOutput) ToMonitorMonitorThresholdWindowsOutput() MonitorMonitorThresholdWindowsOutput { + return o +} + +func (o MonitorMonitorThresholdWindowsOutput) ToMonitorMonitorThresholdWindowsOutputWithContext(ctx context.Context) MonitorMonitorThresholdWindowsOutput { + return o +} + +func (o MonitorMonitorThresholdWindowsOutput) ToMonitorMonitorThresholdWindowsPtrOutput() MonitorMonitorThresholdWindowsPtrOutput { + return o.ToMonitorMonitorThresholdWindowsPtrOutputWithContext(context.Background()) +} + +func (o MonitorMonitorThresholdWindowsOutput) ToMonitorMonitorThresholdWindowsPtrOutputWithContext(ctx context.Context) MonitorMonitorThresholdWindowsPtrOutput { + return o.ApplyT(func(v MonitorMonitorThresholdWindows) *MonitorMonitorThresholdWindows { + return &v + }).(MonitorMonitorThresholdWindowsPtrOutput) +} +func (o MonitorMonitorThresholdWindowsOutput) RecoveryWindow() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorMonitorThresholdWindows) *string { return v.RecoveryWindow }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdWindowsOutput) TriggerWindow() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorMonitorThresholdWindows) *string { return v.TriggerWindow }).(pulumi.StringPtrOutput) +} + +type MonitorMonitorThresholdWindowsPtrOutput struct{ *pulumi.OutputState } + +func (MonitorMonitorThresholdWindowsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MonitorMonitorThresholdWindows)(nil)).Elem() +} + +func (o MonitorMonitorThresholdWindowsPtrOutput) ToMonitorMonitorThresholdWindowsPtrOutput() MonitorMonitorThresholdWindowsPtrOutput { + return o +} + +func (o MonitorMonitorThresholdWindowsPtrOutput) ToMonitorMonitorThresholdWindowsPtrOutputWithContext(ctx context.Context) MonitorMonitorThresholdWindowsPtrOutput { + return o +} + +func (o MonitorMonitorThresholdWindowsPtrOutput) Elem() MonitorMonitorThresholdWindowsOutput { + return o.ApplyT(func(v *MonitorMonitorThresholdWindows) MonitorMonitorThresholdWindows { return *v }).(MonitorMonitorThresholdWindowsOutput) +} + +func (o MonitorMonitorThresholdWindowsPtrOutput) RecoveryWindow() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorMonitorThresholdWindows) *string { + if v == nil { + return nil + } + return v.RecoveryWindow + }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdWindowsPtrOutput) TriggerWindow() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorMonitorThresholdWindows) *string { + if v == nil { + return nil + } + return v.TriggerWindow + }).(pulumi.StringPtrOutput) +} + +type MonitorMonitorThresholds struct { + Critical *string `pulumi:"critical"` + CriticalRecovery *string `pulumi:"criticalRecovery"` + Ok *string `pulumi:"ok"` + Unknown *string `pulumi:"unknown"` + Warning *string `pulumi:"warning"` + WarningRecovery *string `pulumi:"warningRecovery"` +} + +// MonitorMonitorThresholdsInput is an input type that accepts MonitorMonitorThresholdsArgs and MonitorMonitorThresholdsOutput values. +// You can construct a concrete instance of `MonitorMonitorThresholdsInput` via: +// +// MonitorMonitorThresholdsArgs{...} +type MonitorMonitorThresholdsInput interface { + pulumi.Input + + ToMonitorMonitorThresholdsOutput() MonitorMonitorThresholdsOutput + ToMonitorMonitorThresholdsOutputWithContext(context.Context) MonitorMonitorThresholdsOutput +} + +type MonitorMonitorThresholdsArgs struct { + Critical pulumi.StringPtrInput `pulumi:"critical"` + CriticalRecovery pulumi.StringPtrInput `pulumi:"criticalRecovery"` + Ok pulumi.StringPtrInput `pulumi:"ok"` + Unknown pulumi.StringPtrInput `pulumi:"unknown"` + Warning pulumi.StringPtrInput `pulumi:"warning"` + WarningRecovery pulumi.StringPtrInput `pulumi:"warningRecovery"` +} + +func (MonitorMonitorThresholdsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MonitorMonitorThresholds)(nil)).Elem() +} + +func (i MonitorMonitorThresholdsArgs) ToMonitorMonitorThresholdsOutput() MonitorMonitorThresholdsOutput { + return i.ToMonitorMonitorThresholdsOutputWithContext(context.Background()) +} + +func (i MonitorMonitorThresholdsArgs) ToMonitorMonitorThresholdsOutputWithContext(ctx context.Context) MonitorMonitorThresholdsOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorMonitorThresholdsOutput) +} + +func (i MonitorMonitorThresholdsArgs) ToMonitorMonitorThresholdsPtrOutput() MonitorMonitorThresholdsPtrOutput { + return i.ToMonitorMonitorThresholdsPtrOutputWithContext(context.Background()) +} + +func (i MonitorMonitorThresholdsArgs) ToMonitorMonitorThresholdsPtrOutputWithContext(ctx context.Context) MonitorMonitorThresholdsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorMonitorThresholdsOutput).ToMonitorMonitorThresholdsPtrOutputWithContext(ctx) +} + +// MonitorMonitorThresholdsPtrInput is an input type that accepts MonitorMonitorThresholdsArgs, MonitorMonitorThresholdsPtr and MonitorMonitorThresholdsPtrOutput values. +// You can construct a concrete instance of `MonitorMonitorThresholdsPtrInput` via: +// +// MonitorMonitorThresholdsArgs{...} +// +// or: +// +// nil +type MonitorMonitorThresholdsPtrInput interface { + pulumi.Input + + ToMonitorMonitorThresholdsPtrOutput() MonitorMonitorThresholdsPtrOutput + ToMonitorMonitorThresholdsPtrOutputWithContext(context.Context) MonitorMonitorThresholdsPtrOutput +} + +type monitorMonitorThresholdsPtrType MonitorMonitorThresholdsArgs + +func MonitorMonitorThresholdsPtr(v *MonitorMonitorThresholdsArgs) MonitorMonitorThresholdsPtrInput { + return (*monitorMonitorThresholdsPtrType)(v) +} + +func (*monitorMonitorThresholdsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MonitorMonitorThresholds)(nil)).Elem() +} + +func (i *monitorMonitorThresholdsPtrType) ToMonitorMonitorThresholdsPtrOutput() MonitorMonitorThresholdsPtrOutput { + return i.ToMonitorMonitorThresholdsPtrOutputWithContext(context.Background()) +} + +func (i *monitorMonitorThresholdsPtrType) ToMonitorMonitorThresholdsPtrOutputWithContext(ctx context.Context) MonitorMonitorThresholdsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorMonitorThresholdsPtrOutput) +} + +type MonitorMonitorThresholdsOutput struct{ *pulumi.OutputState } + +func (MonitorMonitorThresholdsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MonitorMonitorThresholds)(nil)).Elem() +} + +func (o MonitorMonitorThresholdsOutput) ToMonitorMonitorThresholdsOutput() MonitorMonitorThresholdsOutput { + return o +} + +func (o MonitorMonitorThresholdsOutput) ToMonitorMonitorThresholdsOutputWithContext(ctx context.Context) MonitorMonitorThresholdsOutput { + return o +} + +func (o MonitorMonitorThresholdsOutput) ToMonitorMonitorThresholdsPtrOutput() MonitorMonitorThresholdsPtrOutput { + return o.ToMonitorMonitorThresholdsPtrOutputWithContext(context.Background()) +} + +func (o MonitorMonitorThresholdsOutput) ToMonitorMonitorThresholdsPtrOutputWithContext(ctx context.Context) MonitorMonitorThresholdsPtrOutput { + return o.ApplyT(func(v MonitorMonitorThresholds) *MonitorMonitorThresholds { + return &v + }).(MonitorMonitorThresholdsPtrOutput) +} +func (o MonitorMonitorThresholdsOutput) Critical() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorMonitorThresholds) *string { return v.Critical }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdsOutput) CriticalRecovery() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorMonitorThresholds) *string { return v.CriticalRecovery }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdsOutput) Ok() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorMonitorThresholds) *string { return v.Ok }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdsOutput) Unknown() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorMonitorThresholds) *string { return v.Unknown }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdsOutput) Warning() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorMonitorThresholds) *string { return v.Warning }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdsOutput) WarningRecovery() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorMonitorThresholds) *string { return v.WarningRecovery }).(pulumi.StringPtrOutput) +} + +type MonitorMonitorThresholdsPtrOutput struct{ *pulumi.OutputState } + +func (MonitorMonitorThresholdsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MonitorMonitorThresholds)(nil)).Elem() +} + +func (o MonitorMonitorThresholdsPtrOutput) ToMonitorMonitorThresholdsPtrOutput() MonitorMonitorThresholdsPtrOutput { + return o +} + +func (o MonitorMonitorThresholdsPtrOutput) ToMonitorMonitorThresholdsPtrOutputWithContext(ctx context.Context) MonitorMonitorThresholdsPtrOutput { + return o +} + +func (o MonitorMonitorThresholdsPtrOutput) Elem() MonitorMonitorThresholdsOutput { + return o.ApplyT(func(v *MonitorMonitorThresholds) MonitorMonitorThresholds { return *v }).(MonitorMonitorThresholdsOutput) +} + +func (o MonitorMonitorThresholdsPtrOutput) Critical() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorMonitorThresholds) *string { + if v == nil { + return nil + } + return v.Critical + }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdsPtrOutput) CriticalRecovery() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorMonitorThresholds) *string { + if v == nil { + return nil + } + return v.CriticalRecovery + }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdsPtrOutput) Ok() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorMonitorThresholds) *string { + if v == nil { + return nil + } + return v.Ok + }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdsPtrOutput) Unknown() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorMonitorThresholds) *string { + if v == nil { + return nil + } + return v.Unknown + }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdsPtrOutput) Warning() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorMonitorThresholds) *string { + if v == nil { + return nil + } + return v.Warning + }).(pulumi.StringPtrOutput) +} + +func (o MonitorMonitorThresholdsPtrOutput) WarningRecovery() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorMonitorThresholds) *string { + if v == nil { + return nil + } + return v.WarningRecovery + }).(pulumi.StringPtrOutput) +} + type MonitorThresholdWindows struct { - // describes how long an anomalous metric must be normal before the alert recovers. RecoveryWindow *string `pulumi:"recoveryWindow"` - // describes how long a metric must be anomalous before an alert triggers. - TriggerWindow *string `pulumi:"triggerWindow"` + TriggerWindow *string `pulumi:"triggerWindow"` } // MonitorThresholdWindowsInput is an input type that accepts MonitorThresholdWindowsArgs and MonitorThresholdWindowsOutput values. @@ -116837,10 +118054,8 @@ type MonitorThresholdWindowsInput interface { } type MonitorThresholdWindowsArgs struct { - // describes how long an anomalous metric must be normal before the alert recovers. RecoveryWindow pulumi.StringPtrInput `pulumi:"recoveryWindow"` - // describes how long a metric must be anomalous before an alert triggers. - TriggerWindow pulumi.StringPtrInput `pulumi:"triggerWindow"` + TriggerWindow pulumi.StringPtrInput `pulumi:"triggerWindow"` } func (MonitorThresholdWindowsArgs) ElementType() reflect.Type { @@ -116919,13 +118134,10 @@ func (o MonitorThresholdWindowsOutput) ToMonitorThresholdWindowsPtrOutputWithCon return &v }).(MonitorThresholdWindowsPtrOutput) } - -// describes how long an anomalous metric must be normal before the alert recovers. func (o MonitorThresholdWindowsOutput) RecoveryWindow() pulumi.StringPtrOutput { return o.ApplyT(func(v MonitorThresholdWindows) *string { return v.RecoveryWindow }).(pulumi.StringPtrOutput) } -// describes how long a metric must be anomalous before an alert triggers. func (o MonitorThresholdWindowsOutput) TriggerWindow() pulumi.StringPtrOutput { return o.ApplyT(func(v MonitorThresholdWindows) *string { return v.TriggerWindow }).(pulumi.StringPtrOutput) } @@ -116948,7 +118160,6 @@ func (o MonitorThresholdWindowsPtrOutput) Elem() MonitorThresholdWindowsOutput { return o.ApplyT(func(v *MonitorThresholdWindows) MonitorThresholdWindows { return *v }).(MonitorThresholdWindowsOutput) } -// describes how long an anomalous metric must be normal before the alert recovers. func (o MonitorThresholdWindowsPtrOutput) RecoveryWindow() pulumi.StringPtrOutput { return o.ApplyT(func(v *MonitorThresholdWindows) *string { if v == nil { @@ -116958,7 +118169,6 @@ func (o MonitorThresholdWindowsPtrOutput) RecoveryWindow() pulumi.StringPtrOutpu }).(pulumi.StringPtrOutput) } -// describes how long a metric must be anomalous before an alert triggers. func (o MonitorThresholdWindowsPtrOutput) TriggerWindow() pulumi.StringPtrOutput { return o.ApplyT(func(v *MonitorThresholdWindows) *string { if v == nil { @@ -120961,6 +122171,307 @@ func (o ServiceLevelObjectiveThresholdArrayOutput) Index(i pulumi.IntInput) Serv }).(ServiceLevelObjectiveThresholdOutput) } +type SyntheticsGlobalVariableParseTestOptions struct { + Field *string `pulumi:"field"` + Parser SyntheticsGlobalVariableParseTestOptionsParser `pulumi:"parser"` + Type string `pulumi:"type"` +} + +// SyntheticsGlobalVariableParseTestOptionsInput is an input type that accepts SyntheticsGlobalVariableParseTestOptionsArgs and SyntheticsGlobalVariableParseTestOptionsOutput values. +// You can construct a concrete instance of `SyntheticsGlobalVariableParseTestOptionsInput` via: +// +// SyntheticsGlobalVariableParseTestOptionsArgs{...} +type SyntheticsGlobalVariableParseTestOptionsInput interface { + pulumi.Input + + ToSyntheticsGlobalVariableParseTestOptionsOutput() SyntheticsGlobalVariableParseTestOptionsOutput + ToSyntheticsGlobalVariableParseTestOptionsOutputWithContext(context.Context) SyntheticsGlobalVariableParseTestOptionsOutput +} + +type SyntheticsGlobalVariableParseTestOptionsArgs struct { + Field pulumi.StringPtrInput `pulumi:"field"` + Parser SyntheticsGlobalVariableParseTestOptionsParserInput `pulumi:"parser"` + Type pulumi.StringInput `pulumi:"type"` +} + +func (SyntheticsGlobalVariableParseTestOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SyntheticsGlobalVariableParseTestOptions)(nil)).Elem() +} + +func (i SyntheticsGlobalVariableParseTestOptionsArgs) ToSyntheticsGlobalVariableParseTestOptionsOutput() SyntheticsGlobalVariableParseTestOptionsOutput { + return i.ToSyntheticsGlobalVariableParseTestOptionsOutputWithContext(context.Background()) +} + +func (i SyntheticsGlobalVariableParseTestOptionsArgs) ToSyntheticsGlobalVariableParseTestOptionsOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SyntheticsGlobalVariableParseTestOptionsOutput) +} + +func (i SyntheticsGlobalVariableParseTestOptionsArgs) ToSyntheticsGlobalVariableParseTestOptionsPtrOutput() SyntheticsGlobalVariableParseTestOptionsPtrOutput { + return i.ToSyntheticsGlobalVariableParseTestOptionsPtrOutputWithContext(context.Background()) +} + +func (i SyntheticsGlobalVariableParseTestOptionsArgs) ToSyntheticsGlobalVariableParseTestOptionsPtrOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SyntheticsGlobalVariableParseTestOptionsOutput).ToSyntheticsGlobalVariableParseTestOptionsPtrOutputWithContext(ctx) +} + +// SyntheticsGlobalVariableParseTestOptionsPtrInput is an input type that accepts SyntheticsGlobalVariableParseTestOptionsArgs, SyntheticsGlobalVariableParseTestOptionsPtr and SyntheticsGlobalVariableParseTestOptionsPtrOutput values. +// You can construct a concrete instance of `SyntheticsGlobalVariableParseTestOptionsPtrInput` via: +// +// SyntheticsGlobalVariableParseTestOptionsArgs{...} +// +// or: +// +// nil +type SyntheticsGlobalVariableParseTestOptionsPtrInput interface { + pulumi.Input + + ToSyntheticsGlobalVariableParseTestOptionsPtrOutput() SyntheticsGlobalVariableParseTestOptionsPtrOutput + ToSyntheticsGlobalVariableParseTestOptionsPtrOutputWithContext(context.Context) SyntheticsGlobalVariableParseTestOptionsPtrOutput +} + +type syntheticsGlobalVariableParseTestOptionsPtrType SyntheticsGlobalVariableParseTestOptionsArgs + +func SyntheticsGlobalVariableParseTestOptionsPtr(v *SyntheticsGlobalVariableParseTestOptionsArgs) SyntheticsGlobalVariableParseTestOptionsPtrInput { + return (*syntheticsGlobalVariableParseTestOptionsPtrType)(v) +} + +func (*syntheticsGlobalVariableParseTestOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SyntheticsGlobalVariableParseTestOptions)(nil)).Elem() +} + +func (i *syntheticsGlobalVariableParseTestOptionsPtrType) ToSyntheticsGlobalVariableParseTestOptionsPtrOutput() SyntheticsGlobalVariableParseTestOptionsPtrOutput { + return i.ToSyntheticsGlobalVariableParseTestOptionsPtrOutputWithContext(context.Background()) +} + +func (i *syntheticsGlobalVariableParseTestOptionsPtrType) ToSyntheticsGlobalVariableParseTestOptionsPtrOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SyntheticsGlobalVariableParseTestOptionsPtrOutput) +} + +type SyntheticsGlobalVariableParseTestOptionsOutput struct{ *pulumi.OutputState } + +func (SyntheticsGlobalVariableParseTestOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SyntheticsGlobalVariableParseTestOptions)(nil)).Elem() +} + +func (o SyntheticsGlobalVariableParseTestOptionsOutput) ToSyntheticsGlobalVariableParseTestOptionsOutput() SyntheticsGlobalVariableParseTestOptionsOutput { + return o +} + +func (o SyntheticsGlobalVariableParseTestOptionsOutput) ToSyntheticsGlobalVariableParseTestOptionsOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsOutput { + return o +} + +func (o SyntheticsGlobalVariableParseTestOptionsOutput) ToSyntheticsGlobalVariableParseTestOptionsPtrOutput() SyntheticsGlobalVariableParseTestOptionsPtrOutput { + return o.ToSyntheticsGlobalVariableParseTestOptionsPtrOutputWithContext(context.Background()) +} + +func (o SyntheticsGlobalVariableParseTestOptionsOutput) ToSyntheticsGlobalVariableParseTestOptionsPtrOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsPtrOutput { + return o.ApplyT(func(v SyntheticsGlobalVariableParseTestOptions) *SyntheticsGlobalVariableParseTestOptions { + return &v + }).(SyntheticsGlobalVariableParseTestOptionsPtrOutput) +} +func (o SyntheticsGlobalVariableParseTestOptionsOutput) Field() pulumi.StringPtrOutput { + return o.ApplyT(func(v SyntheticsGlobalVariableParseTestOptions) *string { return v.Field }).(pulumi.StringPtrOutput) +} + +func (o SyntheticsGlobalVariableParseTestOptionsOutput) Parser() SyntheticsGlobalVariableParseTestOptionsParserOutput { + return o.ApplyT(func(v SyntheticsGlobalVariableParseTestOptions) SyntheticsGlobalVariableParseTestOptionsParser { + return v.Parser + }).(SyntheticsGlobalVariableParseTestOptionsParserOutput) +} + +func (o SyntheticsGlobalVariableParseTestOptionsOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v SyntheticsGlobalVariableParseTestOptions) string { return v.Type }).(pulumi.StringOutput) +} + +type SyntheticsGlobalVariableParseTestOptionsPtrOutput struct{ *pulumi.OutputState } + +func (SyntheticsGlobalVariableParseTestOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SyntheticsGlobalVariableParseTestOptions)(nil)).Elem() +} + +func (o SyntheticsGlobalVariableParseTestOptionsPtrOutput) ToSyntheticsGlobalVariableParseTestOptionsPtrOutput() SyntheticsGlobalVariableParseTestOptionsPtrOutput { + return o +} + +func (o SyntheticsGlobalVariableParseTestOptionsPtrOutput) ToSyntheticsGlobalVariableParseTestOptionsPtrOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsPtrOutput { + return o +} + +func (o SyntheticsGlobalVariableParseTestOptionsPtrOutput) Elem() SyntheticsGlobalVariableParseTestOptionsOutput { + return o.ApplyT(func(v *SyntheticsGlobalVariableParseTestOptions) SyntheticsGlobalVariableParseTestOptions { return *v }).(SyntheticsGlobalVariableParseTestOptionsOutput) +} + +func (o SyntheticsGlobalVariableParseTestOptionsPtrOutput) Field() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SyntheticsGlobalVariableParseTestOptions) *string { + if v == nil { + return nil + } + return v.Field + }).(pulumi.StringPtrOutput) +} + +func (o SyntheticsGlobalVariableParseTestOptionsPtrOutput) Parser() SyntheticsGlobalVariableParseTestOptionsParserPtrOutput { + return o.ApplyT(func(v *SyntheticsGlobalVariableParseTestOptions) *SyntheticsGlobalVariableParseTestOptionsParser { + if v == nil { + return nil + } + return &v.Parser + }).(SyntheticsGlobalVariableParseTestOptionsParserPtrOutput) +} + +func (o SyntheticsGlobalVariableParseTestOptionsPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SyntheticsGlobalVariableParseTestOptions) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +type SyntheticsGlobalVariableParseTestOptionsParser struct { + Type string `pulumi:"type"` + Value *string `pulumi:"value"` +} + +// SyntheticsGlobalVariableParseTestOptionsParserInput is an input type that accepts SyntheticsGlobalVariableParseTestOptionsParserArgs and SyntheticsGlobalVariableParseTestOptionsParserOutput values. +// You can construct a concrete instance of `SyntheticsGlobalVariableParseTestOptionsParserInput` via: +// +// SyntheticsGlobalVariableParseTestOptionsParserArgs{...} +type SyntheticsGlobalVariableParseTestOptionsParserInput interface { + pulumi.Input + + ToSyntheticsGlobalVariableParseTestOptionsParserOutput() SyntheticsGlobalVariableParseTestOptionsParserOutput + ToSyntheticsGlobalVariableParseTestOptionsParserOutputWithContext(context.Context) SyntheticsGlobalVariableParseTestOptionsParserOutput +} + +type SyntheticsGlobalVariableParseTestOptionsParserArgs struct { + Type pulumi.StringInput `pulumi:"type"` + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (SyntheticsGlobalVariableParseTestOptionsParserArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SyntheticsGlobalVariableParseTestOptionsParser)(nil)).Elem() +} + +func (i SyntheticsGlobalVariableParseTestOptionsParserArgs) ToSyntheticsGlobalVariableParseTestOptionsParserOutput() SyntheticsGlobalVariableParseTestOptionsParserOutput { + return i.ToSyntheticsGlobalVariableParseTestOptionsParserOutputWithContext(context.Background()) +} + +func (i SyntheticsGlobalVariableParseTestOptionsParserArgs) ToSyntheticsGlobalVariableParseTestOptionsParserOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsParserOutput { + return pulumi.ToOutputWithContext(ctx, i).(SyntheticsGlobalVariableParseTestOptionsParserOutput) +} + +func (i SyntheticsGlobalVariableParseTestOptionsParserArgs) ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutput() SyntheticsGlobalVariableParseTestOptionsParserPtrOutput { + return i.ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutputWithContext(context.Background()) +} + +func (i SyntheticsGlobalVariableParseTestOptionsParserArgs) ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsParserPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SyntheticsGlobalVariableParseTestOptionsParserOutput).ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutputWithContext(ctx) +} + +// SyntheticsGlobalVariableParseTestOptionsParserPtrInput is an input type that accepts SyntheticsGlobalVariableParseTestOptionsParserArgs, SyntheticsGlobalVariableParseTestOptionsParserPtr and SyntheticsGlobalVariableParseTestOptionsParserPtrOutput values. +// You can construct a concrete instance of `SyntheticsGlobalVariableParseTestOptionsParserPtrInput` via: +// +// SyntheticsGlobalVariableParseTestOptionsParserArgs{...} +// +// or: +// +// nil +type SyntheticsGlobalVariableParseTestOptionsParserPtrInput interface { + pulumi.Input + + ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutput() SyntheticsGlobalVariableParseTestOptionsParserPtrOutput + ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutputWithContext(context.Context) SyntheticsGlobalVariableParseTestOptionsParserPtrOutput +} + +type syntheticsGlobalVariableParseTestOptionsParserPtrType SyntheticsGlobalVariableParseTestOptionsParserArgs + +func SyntheticsGlobalVariableParseTestOptionsParserPtr(v *SyntheticsGlobalVariableParseTestOptionsParserArgs) SyntheticsGlobalVariableParseTestOptionsParserPtrInput { + return (*syntheticsGlobalVariableParseTestOptionsParserPtrType)(v) +} + +func (*syntheticsGlobalVariableParseTestOptionsParserPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SyntheticsGlobalVariableParseTestOptionsParser)(nil)).Elem() +} + +func (i *syntheticsGlobalVariableParseTestOptionsParserPtrType) ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutput() SyntheticsGlobalVariableParseTestOptionsParserPtrOutput { + return i.ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutputWithContext(context.Background()) +} + +func (i *syntheticsGlobalVariableParseTestOptionsParserPtrType) ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsParserPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SyntheticsGlobalVariableParseTestOptionsParserPtrOutput) +} + +type SyntheticsGlobalVariableParseTestOptionsParserOutput struct{ *pulumi.OutputState } + +func (SyntheticsGlobalVariableParseTestOptionsParserOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SyntheticsGlobalVariableParseTestOptionsParser)(nil)).Elem() +} + +func (o SyntheticsGlobalVariableParseTestOptionsParserOutput) ToSyntheticsGlobalVariableParseTestOptionsParserOutput() SyntheticsGlobalVariableParseTestOptionsParserOutput { + return o +} + +func (o SyntheticsGlobalVariableParseTestOptionsParserOutput) ToSyntheticsGlobalVariableParseTestOptionsParserOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsParserOutput { + return o +} + +func (o SyntheticsGlobalVariableParseTestOptionsParserOutput) ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutput() SyntheticsGlobalVariableParseTestOptionsParserPtrOutput { + return o.ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutputWithContext(context.Background()) +} + +func (o SyntheticsGlobalVariableParseTestOptionsParserOutput) ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsParserPtrOutput { + return o.ApplyT(func(v SyntheticsGlobalVariableParseTestOptionsParser) *SyntheticsGlobalVariableParseTestOptionsParser { + return &v + }).(SyntheticsGlobalVariableParseTestOptionsParserPtrOutput) +} +func (o SyntheticsGlobalVariableParseTestOptionsParserOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v SyntheticsGlobalVariableParseTestOptionsParser) string { return v.Type }).(pulumi.StringOutput) +} + +func (o SyntheticsGlobalVariableParseTestOptionsParserOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v SyntheticsGlobalVariableParseTestOptionsParser) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type SyntheticsGlobalVariableParseTestOptionsParserPtrOutput struct{ *pulumi.OutputState } + +func (SyntheticsGlobalVariableParseTestOptionsParserPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SyntheticsGlobalVariableParseTestOptionsParser)(nil)).Elem() +} + +func (o SyntheticsGlobalVariableParseTestOptionsParserPtrOutput) ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutput() SyntheticsGlobalVariableParseTestOptionsParserPtrOutput { + return o +} + +func (o SyntheticsGlobalVariableParseTestOptionsParserPtrOutput) ToSyntheticsGlobalVariableParseTestOptionsParserPtrOutputWithContext(ctx context.Context) SyntheticsGlobalVariableParseTestOptionsParserPtrOutput { + return o +} + +func (o SyntheticsGlobalVariableParseTestOptionsParserPtrOutput) Elem() SyntheticsGlobalVariableParseTestOptionsParserOutput { + return o.ApplyT(func(v *SyntheticsGlobalVariableParseTestOptionsParser) SyntheticsGlobalVariableParseTestOptionsParser { + return *v + }).(SyntheticsGlobalVariableParseTestOptionsParserOutput) +} + +func (o SyntheticsGlobalVariableParseTestOptionsParserPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SyntheticsGlobalVariableParseTestOptionsParser) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +func (o SyntheticsGlobalVariableParseTestOptionsParserPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SyntheticsGlobalVariableParseTestOptionsParser) *string { + if v == nil { + return nil + } + return v.Value + }).(pulumi.StringPtrOutput) +} + type SyntheticsTestAssertion struct { Operator string `pulumi:"operator"` Property *string `pulumi:"property"` @@ -125470,6 +126981,140 @@ func (o TimeBoardTemplateVariableArrayOutput) Index(i pulumi.IntInput) TimeBoard }).(TimeBoardTemplateVariableOutput) } +type GetMonitorMonitorThresholdWindows struct { + RecoveryWindow string `pulumi:"recoveryWindow"` + TriggerWindow string `pulumi:"triggerWindow"` +} + +// GetMonitorMonitorThresholdWindowsInput is an input type that accepts GetMonitorMonitorThresholdWindowsArgs and GetMonitorMonitorThresholdWindowsOutput values. +// You can construct a concrete instance of `GetMonitorMonitorThresholdWindowsInput` via: +// +// GetMonitorMonitorThresholdWindowsArgs{...} +type GetMonitorMonitorThresholdWindowsInput interface { + pulumi.Input + + ToGetMonitorMonitorThresholdWindowsOutput() GetMonitorMonitorThresholdWindowsOutput + ToGetMonitorMonitorThresholdWindowsOutputWithContext(context.Context) GetMonitorMonitorThresholdWindowsOutput +} + +type GetMonitorMonitorThresholdWindowsArgs struct { + RecoveryWindow pulumi.StringInput `pulumi:"recoveryWindow"` + TriggerWindow pulumi.StringInput `pulumi:"triggerWindow"` +} + +func (GetMonitorMonitorThresholdWindowsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetMonitorMonitorThresholdWindows)(nil)).Elem() +} + +func (i GetMonitorMonitorThresholdWindowsArgs) ToGetMonitorMonitorThresholdWindowsOutput() GetMonitorMonitorThresholdWindowsOutput { + return i.ToGetMonitorMonitorThresholdWindowsOutputWithContext(context.Background()) +} + +func (i GetMonitorMonitorThresholdWindowsArgs) ToGetMonitorMonitorThresholdWindowsOutputWithContext(ctx context.Context) GetMonitorMonitorThresholdWindowsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetMonitorMonitorThresholdWindowsOutput) +} + +type GetMonitorMonitorThresholdWindowsOutput struct{ *pulumi.OutputState } + +func (GetMonitorMonitorThresholdWindowsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetMonitorMonitorThresholdWindows)(nil)).Elem() +} + +func (o GetMonitorMonitorThresholdWindowsOutput) ToGetMonitorMonitorThresholdWindowsOutput() GetMonitorMonitorThresholdWindowsOutput { + return o +} + +func (o GetMonitorMonitorThresholdWindowsOutput) ToGetMonitorMonitorThresholdWindowsOutputWithContext(ctx context.Context) GetMonitorMonitorThresholdWindowsOutput { + return o +} + +func (o GetMonitorMonitorThresholdWindowsOutput) RecoveryWindow() pulumi.StringOutput { + return o.ApplyT(func(v GetMonitorMonitorThresholdWindows) string { return v.RecoveryWindow }).(pulumi.StringOutput) +} + +func (o GetMonitorMonitorThresholdWindowsOutput) TriggerWindow() pulumi.StringOutput { + return o.ApplyT(func(v GetMonitorMonitorThresholdWindows) string { return v.TriggerWindow }).(pulumi.StringOutput) +} + +type GetMonitorMonitorThresholds struct { + Critical string `pulumi:"critical"` + CriticalRecovery string `pulumi:"criticalRecovery"` + Ok string `pulumi:"ok"` + Unknown string `pulumi:"unknown"` + Warning string `pulumi:"warning"` + WarningRecovery string `pulumi:"warningRecovery"` +} + +// GetMonitorMonitorThresholdsInput is an input type that accepts GetMonitorMonitorThresholdsArgs and GetMonitorMonitorThresholdsOutput values. +// You can construct a concrete instance of `GetMonitorMonitorThresholdsInput` via: +// +// GetMonitorMonitorThresholdsArgs{...} +type GetMonitorMonitorThresholdsInput interface { + pulumi.Input + + ToGetMonitorMonitorThresholdsOutput() GetMonitorMonitorThresholdsOutput + ToGetMonitorMonitorThresholdsOutputWithContext(context.Context) GetMonitorMonitorThresholdsOutput +} + +type GetMonitorMonitorThresholdsArgs struct { + Critical pulumi.StringInput `pulumi:"critical"` + CriticalRecovery pulumi.StringInput `pulumi:"criticalRecovery"` + Ok pulumi.StringInput `pulumi:"ok"` + Unknown pulumi.StringInput `pulumi:"unknown"` + Warning pulumi.StringInput `pulumi:"warning"` + WarningRecovery pulumi.StringInput `pulumi:"warningRecovery"` +} + +func (GetMonitorMonitorThresholdsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetMonitorMonitorThresholds)(nil)).Elem() +} + +func (i GetMonitorMonitorThresholdsArgs) ToGetMonitorMonitorThresholdsOutput() GetMonitorMonitorThresholdsOutput { + return i.ToGetMonitorMonitorThresholdsOutputWithContext(context.Background()) +} + +func (i GetMonitorMonitorThresholdsArgs) ToGetMonitorMonitorThresholdsOutputWithContext(ctx context.Context) GetMonitorMonitorThresholdsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetMonitorMonitorThresholdsOutput) +} + +type GetMonitorMonitorThresholdsOutput struct{ *pulumi.OutputState } + +func (GetMonitorMonitorThresholdsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetMonitorMonitorThresholds)(nil)).Elem() +} + +func (o GetMonitorMonitorThresholdsOutput) ToGetMonitorMonitorThresholdsOutput() GetMonitorMonitorThresholdsOutput { + return o +} + +func (o GetMonitorMonitorThresholdsOutput) ToGetMonitorMonitorThresholdsOutputWithContext(ctx context.Context) GetMonitorMonitorThresholdsOutput { + return o +} + +func (o GetMonitorMonitorThresholdsOutput) Critical() pulumi.StringOutput { + return o.ApplyT(func(v GetMonitorMonitorThresholds) string { return v.Critical }).(pulumi.StringOutput) +} + +func (o GetMonitorMonitorThresholdsOutput) CriticalRecovery() pulumi.StringOutput { + return o.ApplyT(func(v GetMonitorMonitorThresholds) string { return v.CriticalRecovery }).(pulumi.StringOutput) +} + +func (o GetMonitorMonitorThresholdsOutput) Ok() pulumi.StringOutput { + return o.ApplyT(func(v GetMonitorMonitorThresholds) string { return v.Ok }).(pulumi.StringOutput) +} + +func (o GetMonitorMonitorThresholdsOutput) Unknown() pulumi.StringOutput { + return o.ApplyT(func(v GetMonitorMonitorThresholds) string { return v.Unknown }).(pulumi.StringOutput) +} + +func (o GetMonitorMonitorThresholdsOutput) Warning() pulumi.StringOutput { + return o.ApplyT(func(v GetMonitorMonitorThresholds) string { return v.Warning }).(pulumi.StringOutput) +} + +func (o GetMonitorMonitorThresholdsOutput) WarningRecovery() pulumi.StringOutput { + return o.ApplyT(func(v GetMonitorMonitorThresholds) string { return v.WarningRecovery }).(pulumi.StringOutput) +} + type GetMonitorThresholdWindows struct { RecoveryWindow string `pulumi:"recoveryWindow"` TriggerWindow string `pulumi:"triggerWindow"` @@ -127589,10 +129234,16 @@ func init() { pulumi.RegisterOutputType(DowntimeRecurrencePtrOutput{}) pulumi.RegisterOutputType(LogsArchiveAzureOutput{}) pulumi.RegisterOutputType(LogsArchiveAzurePtrOutput{}) + pulumi.RegisterOutputType(LogsArchiveAzureArchiveOutput{}) + pulumi.RegisterOutputType(LogsArchiveAzureArchivePtrOutput{}) pulumi.RegisterOutputType(LogsArchiveGcsOutput{}) pulumi.RegisterOutputType(LogsArchiveGcsPtrOutput{}) + pulumi.RegisterOutputType(LogsArchiveGcsArchiveOutput{}) + pulumi.RegisterOutputType(LogsArchiveGcsArchivePtrOutput{}) pulumi.RegisterOutputType(LogsArchiveS3Output{}) pulumi.RegisterOutputType(LogsArchiveS3PtrOutput{}) + pulumi.RegisterOutputType(LogsArchiveS3ArchiveOutput{}) + pulumi.RegisterOutputType(LogsArchiveS3ArchivePtrOutput{}) pulumi.RegisterOutputType(LogsCustomPipelineFilterOutput{}) pulumi.RegisterOutputType(LogsCustomPipelineFilterArrayOutput{}) pulumi.RegisterOutputType(LogsCustomPipelineProcessorOutput{}) @@ -127675,6 +129326,16 @@ func init() { pulumi.RegisterOutputType(LogsIndexExclusionFilterFilterArrayOutput{}) pulumi.RegisterOutputType(LogsIndexFilterOutput{}) pulumi.RegisterOutputType(LogsIndexFilterArrayOutput{}) + pulumi.RegisterOutputType(LogsMetricComputeOutput{}) + pulumi.RegisterOutputType(LogsMetricComputePtrOutput{}) + pulumi.RegisterOutputType(LogsMetricFilterOutput{}) + pulumi.RegisterOutputType(LogsMetricFilterPtrOutput{}) + pulumi.RegisterOutputType(LogsMetricGroupByOutput{}) + pulumi.RegisterOutputType(LogsMetricGroupByArrayOutput{}) + pulumi.RegisterOutputType(MonitorMonitorThresholdWindowsOutput{}) + pulumi.RegisterOutputType(MonitorMonitorThresholdWindowsPtrOutput{}) + pulumi.RegisterOutputType(MonitorMonitorThresholdsOutput{}) + pulumi.RegisterOutputType(MonitorMonitorThresholdsPtrOutput{}) pulumi.RegisterOutputType(MonitorThresholdWindowsOutput{}) pulumi.RegisterOutputType(MonitorThresholdWindowsPtrOutput{}) pulumi.RegisterOutputType(MonitorThresholdsOutput{}) @@ -127729,6 +129390,10 @@ func init() { pulumi.RegisterOutputType(ServiceLevelObjectiveQueryPtrOutput{}) pulumi.RegisterOutputType(ServiceLevelObjectiveThresholdOutput{}) pulumi.RegisterOutputType(ServiceLevelObjectiveThresholdArrayOutput{}) + pulumi.RegisterOutputType(SyntheticsGlobalVariableParseTestOptionsOutput{}) + pulumi.RegisterOutputType(SyntheticsGlobalVariableParseTestOptionsPtrOutput{}) + pulumi.RegisterOutputType(SyntheticsGlobalVariableParseTestOptionsParserOutput{}) + pulumi.RegisterOutputType(SyntheticsGlobalVariableParseTestOptionsParserPtrOutput{}) pulumi.RegisterOutputType(SyntheticsTestAssertionOutput{}) pulumi.RegisterOutputType(SyntheticsTestAssertionTargetjsonpathOutput{}) pulumi.RegisterOutputType(SyntheticsTestAssertionTargetjsonpathPtrOutput{}) @@ -127790,6 +129455,8 @@ func init() { pulumi.RegisterOutputType(TimeBoardGraphRequestProcessQueryPtrOutput{}) pulumi.RegisterOutputType(TimeBoardTemplateVariableOutput{}) pulumi.RegisterOutputType(TimeBoardTemplateVariableArrayOutput{}) + pulumi.RegisterOutputType(GetMonitorMonitorThresholdWindowsOutput{}) + pulumi.RegisterOutputType(GetMonitorMonitorThresholdsOutput{}) pulumi.RegisterOutputType(GetMonitorThresholdWindowsOutput{}) pulumi.RegisterOutputType(GetMonitorThresholdsOutput{}) pulumi.RegisterOutputType(GetSecurityMonitoringRulesRuleOutput{}) diff --git a/sdk/go/datadog/syntheticsGlobalVariable.go b/sdk/go/datadog/syntheticsGlobalVariable.go index e8cd6dd57..144fe1f55 100644 --- a/sdk/go/datadog/syntheticsGlobalVariable.go +++ b/sdk/go/datadog/syntheticsGlobalVariable.go @@ -56,6 +56,10 @@ type SyntheticsGlobalVariable struct { Description pulumi.StringPtrOutput `pulumi:"description"` // Synthetics global variable name. Name pulumi.StringOutput `pulumi:"name"` + // Id of the Synthetics test to use for a variable from test. + ParseTestId pulumi.StringPtrOutput `pulumi:"parseTestId"` + // ID of the Synthetics test to use a source of the global variable value. + ParseTestOptions SyntheticsGlobalVariableParseTestOptionsPtrOutput `pulumi:"parseTestOptions"` // Sets the variable as secure. Defaults to `false`. Secure pulumi.BoolPtrOutput `pulumi:"secure"` // A list of tags to associate with your synthetics global variable. @@ -103,6 +107,10 @@ type syntheticsGlobalVariableState struct { Description *string `pulumi:"description"` // Synthetics global variable name. Name *string `pulumi:"name"` + // Id of the Synthetics test to use for a variable from test. + ParseTestId *string `pulumi:"parseTestId"` + // ID of the Synthetics test to use a source of the global variable value. + ParseTestOptions *SyntheticsGlobalVariableParseTestOptions `pulumi:"parseTestOptions"` // Sets the variable as secure. Defaults to `false`. Secure *bool `pulumi:"secure"` // A list of tags to associate with your synthetics global variable. @@ -116,6 +124,10 @@ type SyntheticsGlobalVariableState struct { Description pulumi.StringPtrInput // Synthetics global variable name. Name pulumi.StringPtrInput + // Id of the Synthetics test to use for a variable from test. + ParseTestId pulumi.StringPtrInput + // ID of the Synthetics test to use a source of the global variable value. + ParseTestOptions SyntheticsGlobalVariableParseTestOptionsPtrInput // Sets the variable as secure. Defaults to `false`. Secure pulumi.BoolPtrInput // A list of tags to associate with your synthetics global variable. @@ -133,6 +145,10 @@ type syntheticsGlobalVariableArgs struct { Description *string `pulumi:"description"` // Synthetics global variable name. Name string `pulumi:"name"` + // Id of the Synthetics test to use for a variable from test. + ParseTestId *string `pulumi:"parseTestId"` + // ID of the Synthetics test to use a source of the global variable value. + ParseTestOptions *SyntheticsGlobalVariableParseTestOptions `pulumi:"parseTestOptions"` // Sets the variable as secure. Defaults to `false`. Secure *bool `pulumi:"secure"` // A list of tags to associate with your synthetics global variable. @@ -147,6 +163,10 @@ type SyntheticsGlobalVariableArgs struct { Description pulumi.StringPtrInput // Synthetics global variable name. Name pulumi.StringInput + // Id of the Synthetics test to use for a variable from test. + ParseTestId pulumi.StringPtrInput + // ID of the Synthetics test to use a source of the global variable value. + ParseTestOptions SyntheticsGlobalVariableParseTestOptionsPtrInput // Sets the variable as secure. Defaults to `false`. Secure pulumi.BoolPtrInput // A list of tags to associate with your synthetics global variable. diff --git a/sdk/go/datadog/user.go b/sdk/go/datadog/user.go index 3c70db6fc..f9fbeb047 100644 --- a/sdk/go/datadog/user.go +++ b/sdk/go/datadog/user.go @@ -44,10 +44,32 @@ import ( // }) // } // ``` +// ## Schema +// +// ### Required +// +// - **email** (String) Email address for user. +// +// ### Optional +// +// - **access_role** (String, Deprecated) Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. `accessRole` is ignored for new users created with this resource. New users have to use the `roles` attribute. +// - **disabled** (Boolean) Whether the user is disabled. +// - **handle** (String, Deprecated) The user handle, must be a valid email. +// - **id** (String) The ID of this resource. +// - **is_admin** (Boolean, Deprecated) Whether the user is an administrator. Warning: the corresponding query parameter is ignored by the Datadog API, thus the argument would always trigger an execution plan. +// - **name** (String) Name for user. +// - **role** (String, Deprecated) Role description for user. Warning: the corresponding query parameter is ignored by the Datadog API, thus the argument would always trigger an execution plan. +// - **roles** (Set of String) A list a role IDs to assign to the user. +// - **send_user_invitation** (Boolean) Whether an invitation email should be sent when the user is created. +// +// ### Read-only +// +// - **user_invitation_id** (String) The ID of the user invitation that was sent when creating the user. +// - **verified** (Boolean) Returns true if Datadog user is verified. // // ## Import // -// users can be imported using their ID, e.g. +// Import is supported using the following syntax // // ```sh // $ pulumi import datadog:index/user:User example_user 6f1b44c0-30b2-11eb-86bc-279f7c1ebaa4 @@ -57,6 +79,8 @@ type User struct { // Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. // `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute. + // + // Deprecated: This parameter is replaced by `roles` and will be removed from the next Major version AccessRole pulumi.StringPtrOutput `pulumi:"accessRole"` // Whether the user is disabled. Disabled pulumi.BoolPtrOutput `pulumi:"disabled"` @@ -122,6 +146,8 @@ func GetUser(ctx *pulumi.Context, type userState struct { // Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. // `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute. + // + // Deprecated: This parameter is replaced by `roles` and will be removed from the next Major version AccessRole *string `pulumi:"accessRole"` // Whether the user is disabled. Disabled *bool `pulumi:"disabled"` @@ -156,6 +182,8 @@ type userState struct { type UserState struct { // Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. // `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute. + // + // Deprecated: This parameter is replaced by `roles` and will be removed from the next Major version AccessRole pulumi.StringPtrInput // Whether the user is disabled. Disabled pulumi.BoolPtrInput @@ -194,6 +222,8 @@ func (UserState) ElementType() reflect.Type { type userArgs struct { // Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. // `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute. + // + // Deprecated: This parameter is replaced by `roles` and will be removed from the next Major version AccessRole *string `pulumi:"accessRole"` // Whether the user is disabled. Disabled *bool `pulumi:"disabled"` @@ -225,6 +255,8 @@ type userArgs struct { type UserArgs struct { // Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. // `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute. + // + // Deprecated: This parameter is replaced by `roles` and will be removed from the next Major version AccessRole pulumi.StringPtrInput // Whether the user is disabled. Disabled pulumi.BoolPtrInput diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts index 0805cc9a7..976a05123 100644 --- a/sdk/nodejs/config/vars.ts +++ b/sdk/nodejs/config/vars.ts @@ -11,9 +11,9 @@ let __config = new pulumi.Config("datadog"); */ export let apiKey: string | undefined = __config.get("apiKey") || utilities.getEnv("DATADOG_API_KEY"); /** - * The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the - * /api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And - * if you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. + * The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/ + * path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if + * you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. */ export let apiUrl: string | undefined = __config.get("apiUrl") || utilities.getEnv("DATADOG_HOST"); /** @@ -22,6 +22,6 @@ export let apiUrl: string | undefined = __config.get("apiUrl") || utilities.getE export let appKey: string | undefined = __config.get("appKey") || utilities.getEnv("DATADOG_APP_KEY"); /** * Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key - * and app_keywon't be checked. + * and app_key won't be checked. */ export let validate: boolean | undefined = __config.getObject("validate"); diff --git a/sdk/nodejs/getMonitor.ts b/sdk/nodejs/getMonitor.ts index 72ecf1945..aabdf6add 100644 --- a/sdk/nodejs/getMonitor.ts +++ b/sdk/nodejs/getMonitor.ts @@ -19,6 +19,58 @@ import * as utilities from "./utilities"; * nameFilter: "My awesome monitor", * }, { async: true })); * ``` + * ## Schema + * + * ### Optional + * + * - **id** (String) The ID of this resource. + * - **monitor_tags_filter** (List of String) A list of monitor tags to limit the search. This filters on the tags set on the monitor itself. + * - **name_filter** (String) A monitor name to limit the search. + * - **tags_filter** (List of String) A list of tags to limit the search. This filters on the monitor scope. + * + * ### Read-only + * + * - **enable_logs_sample** (Boolean) Whether or not a list of log values which triggered the alert is included. This is only used by log monitors. + * - **escalation_message** (String) Message included with a re-notification for this monitor. + * - **evaluation_delay** (Number) Time (in seconds) for which evaluation is delayed. This is only used by metric monitors. + * - **include_tags** (Boolean) Whether or not notifications from the monitor automatically inserts its triggering tags into the title. + * - **locked** (Boolean) Whether or not changes to the monitor are restricted to the creator or admins. + * - **message** (String) Message included with notifications for this monitor + * - **monitor_threshold_windows** (List of Object) Mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m`. This is only used by anomaly monitors. (see below for nested schema) + * - **monitor_thresholds** (List of Object) Alert thresholds of the monitor. (see below for nested schema) + * - **name** (String) Name of the monitor + * - **new_host_delay** (Number) Time (in seconds) allowing a host to boot and applications to fully start before starting the evaluation of monitor results. + * - **no_data_timeframe** (Number) The number of minutes before the monitor notifies when data stops reporting. + * - **notify_audit** (Boolean) Whether or not tagged users are notified on changes to the monitor. + * - **notify_no_data** (Boolean) Whether or not this monitor notifies when data stops reporting. + * - **query** (String) Query of the monitor. + * - **renotify_interval** (Number) The number of minutes after the last notification before the monitor re-notifies on the current status. + * - **require_full_window** (Boolean) Whether or not the monitor needs a full window of data before it is evaluated. + * - **tags** (Set of String) List of tags associated with the monitor. + * - **threshold_windows** (Map of String, Deprecated) Mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m`. This is only used by anomaly monitors. + * - **thresholds** (Map of String, Deprecated) Alert thresholds of the monitor. + * - **timeout_h** (Number) Number of hours of the monitor not reporting data before it automatically resolves from a triggered state. + * - **type** (String) Type of the monitor. + * + * + * ### Nested Schema for `monitorThresholdWindows` + * + * Read-only: + * + * - **recovery_window** (String) + * - **trigger_window** (String) + * + * + * ### Nested Schema for `monitorThresholds` + * + * Read-only: + * + * - **critical** (String) + * - **critical_recovery** (String) + * - **ok** (String) + * - **unknown** (String) + * - **warning** (String) + * - **warning_recovery** (String) */ export function getMonitor(args?: GetMonitorArgs, opts?: pulumi.InvokeOptions): Promise { args = args || {}; @@ -60,6 +112,8 @@ export interface GetMonitorResult { readonly locked: boolean; readonly message: string; readonly monitorTagsFilters?: string[]; + readonly monitorThresholdWindows: outputs.GetMonitorMonitorThresholdWindows; + readonly monitorThresholds: outputs.GetMonitorMonitorThresholds; readonly name: string; readonly nameFilter?: string; readonly newHostDelay: number; @@ -71,7 +125,13 @@ export interface GetMonitorResult { readonly requireFullWindow: boolean; readonly tags: string[]; readonly tagsFilters?: string[]; + /** + * @deprecated Define `monitor_threshold_windows` list with one element instead. + */ readonly thresholdWindows: outputs.GetMonitorThresholdWindows; + /** + * @deprecated Define `monitor_thresholds` list with one element instead. + */ readonly thresholds: outputs.GetMonitorThresholds; readonly timeoutH: number; readonly type: string; diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 1cc915b73..13242d0d7 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -22,6 +22,7 @@ export * from "./logsCustomPipeline"; export * from "./logsIndex"; export * from "./logsIndexOrder"; export * from "./logsIntegrationPipeline"; +export * from "./logsMetric"; export * from "./logsPipelineOrder"; export * from "./metricMetadata"; export * from "./monitor"; @@ -63,6 +64,7 @@ import { LogsCustomPipeline } from "./logsCustomPipeline"; import { LogsIndex } from "./logsIndex"; import { LogsIndexOrder } from "./logsIndexOrder"; import { LogsIntegrationPipeline } from "./logsIntegrationPipeline"; +import { LogsMetric } from "./logsMetric"; import { LogsPipelineOrder } from "./logsPipelineOrder"; import { MetricMetadata } from "./metricMetadata"; import { Monitor } from "./monitor"; @@ -98,6 +100,8 @@ const _module = { return new LogsIndexOrder(name, undefined, { urn }) case "datadog:index/logsIntegrationPipeline:LogsIntegrationPipeline": return new LogsIntegrationPipeline(name, undefined, { urn }) + case "datadog:index/logsMetric:LogsMetric": + return new LogsMetric(name, undefined, { urn }) case "datadog:index/logsPipelineOrder:LogsPipelineOrder": return new LogsPipelineOrder(name, undefined, { urn }) case "datadog:index/metricMetadata:MetricMetadata": @@ -136,6 +140,7 @@ pulumi.runtime.registerResourceModule("datadog", "index/logsCustomPipeline", _mo pulumi.runtime.registerResourceModule("datadog", "index/logsIndex", _module) pulumi.runtime.registerResourceModule("datadog", "index/logsIndexOrder", _module) pulumi.runtime.registerResourceModule("datadog", "index/logsIntegrationPipeline", _module) +pulumi.runtime.registerResourceModule("datadog", "index/logsMetric", _module) pulumi.runtime.registerResourceModule("datadog", "index/logsPipelineOrder", _module) pulumi.runtime.registerResourceModule("datadog", "index/metricMetadata", _module) pulumi.runtime.registerResourceModule("datadog", "index/monitor", _module) diff --git a/sdk/nodejs/logsArchive.ts b/sdk/nodejs/logsArchive.ts index 29547d1cc..1140a580a 100644 --- a/sdk/nodejs/logsArchive.ts +++ b/sdk/nodejs/logsArchive.ts @@ -6,12 +6,10 @@ import { input as inputs, output as outputs } from "./types"; import * as utilities from "./utilities"; /** - * Provides a Datadog [Logs Archive API](https://docs.datadoghq.com/api/v2/logs-archives/) resource, which is used to create and manage Datadog logs archives. + * Provides a Datadog Logs Archive API resource, which is used to create and manage Datadog logs archives. * * ## Example Usage * - * Create a Datadog logs archive: - * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as datadog from "@pulumi/datadog"; @@ -19,18 +17,70 @@ import * as utilities from "./utilities"; * const myS3Archive = new datadog.LogsArchive("my_s3_archive", { * name: "my s3 archive", * query: "service:myservice", - * s3: { - * account_id: "001234567888", + * s3Archive: { + * accountId: "001234567888", * bucket: "my-bucket", * path: "/path/foo", - * role_name: "my-role-name", + * roleName: "my-role-name", * }, * }); * ``` + * ## Schema + * + * ### Required + * + * - **name** (String, Required) Your archive name. + * - **query** (String, Required) The archive query/filter. Logs matching this query are included in the archive. + * + * ### Optional + * + * - **azure** (Map of String, Optional, Deprecated) Definition of an azure archive. + * - **azure_archive** (Block List, Max: 1) Definition of an azure archive. (see below for nested schema) + * - **gcs** (Map of String, Optional, Deprecated) Definition of a GCS archive. + * - **gcs_archive** (Block List, Max: 1) Definition of a GCS archive. (see below for nested schema) + * - **id** (String, Optional) The ID of this resource. + * - **include_tags** (Boolean, Optional) To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs are sent to the archive. + * - **rehydration_tags** (List of String, Optional) An array of tags to add to rehydrated logs from an archive. + * - **s3** (Map of String, Optional, Deprecated) Definition of an s3 archive. + * - **s3_archive** (Block List, Max: 1) Definition of an s3 archive. (see below for nested schema) + * + * + * ### Nested Schema for `azureArchive` + * + * Required: + * + * - **client_id** (String, Required) Your client id. + * - **container** (String, Required) The container where the archive will be stored. + * - **storage_account** (String, Required) The associated storage account. + * - **tenant_id** (String, Required) Your tenant id. + * + * Optional: + * + * - **path** (String, Optional) The path where the archive will be stored. + * + * + * ### Nested Schema for `gcsArchive` + * + * Required: + * + * - **bucket** (String, Required) Name of your GCS bucket. + * - **client_email** (String, Required) Your client email. + * - **path** (String, Required) Path where the archive will be stored. + * - **project_id** (String, Required) Your project id. + * + * + * ### Nested Schema for `s3Archive` + * + * Required: + * + * - **account_id** (String, Required) Your AWS account id. + * - **bucket** (String, Required) Name of your s3 bucket. + * - **path** (String, Required) Path where the archive will be stored. + * - **role_name** (String, Required) Your AWS role name * * ## Import * - * Logs archives can be imported using their public string ID, e.g. + * Import is supported using the following syntax * * ```sh * $ pulumi import datadog:index/logsArchive:LogsArchive my_s3_archive 1Aabc2_dfQPLnXy3HlfK4hi @@ -66,12 +116,24 @@ export class LogsArchive extends pulumi.CustomResource { /** * Definition of an azure archive. + * + * @deprecated Define `azure_archive` list with one element instead. */ public readonly azure!: pulumi.Output; + /** + * Definition of an azure archive. + */ + public readonly azureArchive!: pulumi.Output; /** * Definition of a GCS archive. + * + * @deprecated Define `gcs_archive` list with one element instead. */ public readonly gcs!: pulumi.Output; + /** + * Definition of a GCS archive. + */ + public readonly gcsArchive!: pulumi.Output; /** * To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs * are sent to the archive. @@ -91,8 +153,14 @@ export class LogsArchive extends pulumi.CustomResource { public readonly rehydrationTags!: pulumi.Output; /** * Definition of an s3 archive. + * + * @deprecated Define `s3_archive` list with one element instead. */ public readonly s3!: pulumi.Output; + /** + * Definition of an s3 archive. + */ + public readonly s3Archive!: pulumi.Output; /** * Create a LogsArchive resource with the given unique name, arguments, and options. @@ -107,12 +175,15 @@ export class LogsArchive extends pulumi.CustomResource { if (opts && opts.id) { const state = argsOrState as LogsArchiveState | undefined; inputs["azure"] = state ? state.azure : undefined; + inputs["azureArchive"] = state ? state.azureArchive : undefined; inputs["gcs"] = state ? state.gcs : undefined; + inputs["gcsArchive"] = state ? state.gcsArchive : undefined; inputs["includeTags"] = state ? state.includeTags : undefined; inputs["name"] = state ? state.name : undefined; inputs["query"] = state ? state.query : undefined; inputs["rehydrationTags"] = state ? state.rehydrationTags : undefined; inputs["s3"] = state ? state.s3 : undefined; + inputs["s3Archive"] = state ? state.s3Archive : undefined; } else { const args = argsOrState as LogsArchiveArgs | undefined; if ((!args || args.name === undefined) && !(opts && opts.urn)) { @@ -122,12 +193,15 @@ export class LogsArchive extends pulumi.CustomResource { throw new Error("Missing required property 'query'"); } inputs["azure"] = args ? args.azure : undefined; + inputs["azureArchive"] = args ? args.azureArchive : undefined; inputs["gcs"] = args ? args.gcs : undefined; + inputs["gcsArchive"] = args ? args.gcsArchive : undefined; inputs["includeTags"] = args ? args.includeTags : undefined; inputs["name"] = args ? args.name : undefined; inputs["query"] = args ? args.query : undefined; inputs["rehydrationTags"] = args ? args.rehydrationTags : undefined; inputs["s3"] = args ? args.s3 : undefined; + inputs["s3Archive"] = args ? args.s3Archive : undefined; } if (!opts) { opts = {} @@ -146,12 +220,24 @@ export class LogsArchive extends pulumi.CustomResource { export interface LogsArchiveState { /** * Definition of an azure archive. + * + * @deprecated Define `azure_archive` list with one element instead. */ readonly azure?: pulumi.Input; + /** + * Definition of an azure archive. + */ + readonly azureArchive?: pulumi.Input; /** * Definition of a GCS archive. + * + * @deprecated Define `gcs_archive` list with one element instead. */ readonly gcs?: pulumi.Input; + /** + * Definition of a GCS archive. + */ + readonly gcsArchive?: pulumi.Input; /** * To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs * are sent to the archive. @@ -171,8 +257,14 @@ export interface LogsArchiveState { readonly rehydrationTags?: pulumi.Input[]>; /** * Definition of an s3 archive. + * + * @deprecated Define `s3_archive` list with one element instead. */ readonly s3?: pulumi.Input; + /** + * Definition of an s3 archive. + */ + readonly s3Archive?: pulumi.Input; } /** @@ -181,12 +273,24 @@ export interface LogsArchiveState { export interface LogsArchiveArgs { /** * Definition of an azure archive. + * + * @deprecated Define `azure_archive` list with one element instead. */ readonly azure?: pulumi.Input; + /** + * Definition of an azure archive. + */ + readonly azureArchive?: pulumi.Input; /** * Definition of a GCS archive. + * + * @deprecated Define `gcs_archive` list with one element instead. */ readonly gcs?: pulumi.Input; + /** + * Definition of a GCS archive. + */ + readonly gcsArchive?: pulumi.Input; /** * To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs * are sent to the archive. @@ -206,6 +310,12 @@ export interface LogsArchiveArgs { readonly rehydrationTags?: pulumi.Input[]>; /** * Definition of an s3 archive. + * + * @deprecated Define `s3_archive` list with one element instead. */ readonly s3?: pulumi.Input; + /** + * Definition of an s3 archive. + */ + readonly s3Archive?: pulumi.Input; } diff --git a/sdk/nodejs/logsMetric.ts b/sdk/nodejs/logsMetric.ts new file mode 100644 index 000000000..d248a7fb4 --- /dev/null +++ b/sdk/nodejs/logsMetric.ts @@ -0,0 +1,209 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs } from "./types"; +import * as utilities from "./utilities"; + +/** + * Resource for interacting with the logsMetric API + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as datadog from "@pulumi/datadog"; + * + * const testingLogsMetric = new datadog.LogsMetric("testing_logs_metric", { + * compute: { + * aggregationType: "distribution", + * path: "@duration", + * }, + * filter: { + * query: "service:test", + * }, + * groupBies: [{ + * path: "@status", + * tagName: "status", + * }], + * name: "testing.logs.metric", + * }); + * ``` + * ## Schema + * + * ### Required + * + * - **compute** (Block List, Min: 1, Max: 1) The compute rule to compute the log-based metric. This field can't be updated after creation. (see below for nested schema) + * - **filter** (Block List, Min: 1, Max: 1) The log-based metric filter. Logs matching this filter will be aggregated in this metric. (see below for nested schema) + * - **name** (String, Required) The name of the log-based metric. This field can't be updated after creation. + * + * ### Optional + * + * - **group_by** (Block List) The rules for the group by. (see below for nested schema) + * - **id** (String, Optional) The ID of this resource. + * + * + * ### Nested Schema for `compute` + * + * Required: + * + * - **aggregation_type** (String, Required) The type of aggregation to use. This field can't be updated after creation. + * + * Optional: + * + * - **path** (String, Optional) The path to the value the log-based metric will aggregate on (only used if the aggregation type is a "distribution"). This field can't be updated after creation. + * + * + * ### Nested Schema for `filter` + * + * Required: + * + * - **query** (String, Required) The search query - following the log search syntax. + * + * + * ### Nested Schema for `groupBy` + * + * Required: + * + * - **path** (String, Required) The path to the value the log-based metric will be aggregated over. + * - **tag_name** (String, Required) Name of the tag that gets created. + * + * ## Import + * + * Import is supported using the following syntax + * + * ```sh + * $ pulumi import datadog:index/logsMetric:LogsMetric testing_logs_metric testing.logs.metric + * ``` + */ +export class LogsMetric extends pulumi.CustomResource { + /** + * Get an existing LogsMetric resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: LogsMetricState, opts?: pulumi.CustomResourceOptions): LogsMetric { + return new LogsMetric(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'datadog:index/logsMetric:LogsMetric'; + + /** + * Returns true if the given object is an instance of LogsMetric. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is LogsMetric { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === LogsMetric.__pulumiType; + } + + /** + * The compute rule to compute the log-based metric. This field can't be updated after creation. + */ + public readonly compute!: pulumi.Output; + /** + * The log-based metric filter. Logs matching this filter will be aggregated in this metric. + */ + public readonly filter!: pulumi.Output; + /** + * The rules for the group by. + */ + public readonly groupBies!: pulumi.Output; + /** + * The name of the log-based metric. This field can't be updated after creation. + */ + public readonly name!: pulumi.Output; + + /** + * Create a LogsMetric resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: LogsMetricArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: LogsMetricArgs | LogsMetricState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as LogsMetricState | undefined; + inputs["compute"] = state ? state.compute : undefined; + inputs["filter"] = state ? state.filter : undefined; + inputs["groupBies"] = state ? state.groupBies : undefined; + inputs["name"] = state ? state.name : undefined; + } else { + const args = argsOrState as LogsMetricArgs | undefined; + if ((!args || args.compute === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'compute'"); + } + if ((!args || args.filter === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'filter'"); + } + if ((!args || args.name === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'name'"); + } + inputs["compute"] = args ? args.compute : undefined; + inputs["filter"] = args ? args.filter : undefined; + inputs["groupBies"] = args ? args.groupBies : undefined; + inputs["name"] = args ? args.name : undefined; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(LogsMetric.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering LogsMetric resources. + */ +export interface LogsMetricState { + /** + * The compute rule to compute the log-based metric. This field can't be updated after creation. + */ + readonly compute?: pulumi.Input; + /** + * The log-based metric filter. Logs matching this filter will be aggregated in this metric. + */ + readonly filter?: pulumi.Input; + /** + * The rules for the group by. + */ + readonly groupBies?: pulumi.Input[]>; + /** + * The name of the log-based metric. This field can't be updated after creation. + */ + readonly name?: pulumi.Input; +} + +/** + * The set of arguments for constructing a LogsMetric resource. + */ +export interface LogsMetricArgs { + /** + * The compute rule to compute the log-based metric. This field can't be updated after creation. + */ + readonly compute: pulumi.Input; + /** + * The log-based metric filter. Logs matching this filter will be aggregated in this metric. + */ + readonly filter: pulumi.Input; + /** + * The rules for the group by. + */ + readonly groupBies?: pulumi.Input[]>; + /** + * The name of the log-based metric. This field can't be updated after creation. + */ + readonly name: pulumi.Input; +} diff --git a/sdk/nodejs/monitor.ts b/sdk/nodejs/monitor.ts index d532b5cc9..70ea488c3 100644 --- a/sdk/nodejs/monitor.ts +++ b/sdk/nodejs/monitor.ts @@ -6,74 +6,9 @@ import { input as inputs, output as outputs } from "./types"; import * as utilities from "./utilities"; /** - * Provides a Datadog monitor resource. This can be used to create and manage Datadog monitors. - * - * ## Example Usage - * - * ```typescript - * import * as pulumi from "@pulumi/pulumi"; - * import * as datadog from "@pulumi/datadog"; - * - * // Create a new Datadog monitor - * const foo = new datadog.Monitor("foo", { - * name: "Name for monitor foo", - * type: "metric alert", - * message: "Monitor triggered. Notify: @hipchat-channel", - * escalationMessage: "Escalation message @pagerduty", - * query: "avg(last_1h):avg:aws.ec2.cpu{environment:foo,host:foo} by {host} > 4", - * thresholds: { - * warning: 2, - * warning_recovery: 1, - * critical: 4, - * critical_recovery: 3, - * }, - * notifyNoData: false, - * renotifyInterval: 60, - * notifyAudit: false, - * timeoutH: 60, - * includeTags: true, - * tags: [ - * "foo:bar", - * "baz", - * ], - * }); - * ``` - * ## Silencing by Hand and by Downtimes - * - * There are two ways how to silence a single monitor: - * - * - Mute it by hand - * - Create a Downtime - * - * Both of these actions add a new value to the `silenced` map. This can be problematic if the `silenced` attribute doesn't contain them in your application, as they would be removed on next `pulumi up` invocation. In order to prevent that from happening, you can add following to your monitor: - * - * ```typescript - * import * as pulumi from "@pulumi/pulumi"; - * ``` - * - * The above will make sure that any changes to the `silenced` attribute are ignored. - * - * This issue doesn't apply to multi-monitor downtimes (those that don't contain `monitorId` ), as these don't influence contents of the `silenced` attribute. - * - * ## Composite Monitors - * - * You can compose monitors of all types in order to define more specific alert conditions (see the [doc](https://docs.datadoghq.com/monitors/monitor_types/composite/)). You just need to reuse the ID of your `datadog.Monitor` resources. You can also compose any monitor with a `datadog.SyntheticsTest` by passing the computed `monitorId` attribute in the query. - * - * ```typescript - * import * as pulumi from "@pulumi/pulumi"; - * import * as datadog from "@pulumi/datadog"; - * - * const bar = new datadog.Monitor("bar", { - * message: "This is a message", - * name: "Composite Monitor", - * query: pulumi.interpolate`${datadog_monitor_foo.id} || ${datadog_synthetics_test_foo.monitorId}`, - * type: "composite", - * }); - * ``` - * * ## Import * - * Monitors can be imported using their numeric ID, e.g. console + * Import is supported using the following syntax * * ```sh * $ pulumi import datadog:index/monitor:Monitor bytes_received_localhost 2081 @@ -108,7 +43,8 @@ export class Monitor extends pulumi.CustomResource { } /** - * A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + * A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + * monitors. Defaults to `false`. */ public readonly enableLogsSample!: pulumi.Output; /** @@ -116,19 +52,25 @@ export class Monitor extends pulumi.CustomResource { */ public readonly escalationMessage!: pulumi.Output; /** - * Time (in seconds) to delay evaluation, as a non-negative integer. + * (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + * value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + * from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + * data during evaluation. */ public readonly evaluationDelay!: pulumi.Output; /** - * A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + * A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + * composite monitor). */ public readonly forceDelete!: pulumi.Output; /** - * A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + * A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + * Defaults to `true`. */ public readonly includeTags!: pulumi.Output; /** - * A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + * A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + * `false`. */ public readonly locked!: pulumi.Output; /** @@ -136,29 +78,37 @@ export class Monitor extends pulumi.CustomResource { * same `@username` notation as events. */ public readonly message!: pulumi.Output; + /** + * A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + * required for, anomaly monitors. + */ + public readonly monitorThresholdWindows!: pulumi.Output; + /** + * Alert thresholds of the monitor. + */ + public readonly monitorThresholds!: pulumi.Output; /** * Name of Datadog monitor. */ public readonly name!: pulumi.Output; /** - * Time (in seconds) to allow a host to boot and + * Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + * results. Should be a non negative integer. Defaults to `300`. */ public readonly newHostDelay!: pulumi.Output; /** - * The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + * The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + * recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. */ public readonly noDataTimeframe!: pulumi.Output; /** - * A boolean indicating whether tagged users will be notified on changes to this monitor. + * A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. */ public readonly notifyAudit!: pulumi.Output; /** - * A boolean indicating whether this monitor will notify when data stops reporting. Defaults + * A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. */ public readonly notifyNoData!: pulumi.Output; - /** - * Integer from 1 (high) to 5 (low) indicating alert severity. - */ public readonly priority!: pulumi.Output; /** * The monitor query to notify on. Note this is not the same query you see in the UI and the syntax is different depending @@ -167,40 +117,55 @@ export class Monitor extends pulumi.CustomResource { */ public readonly query!: pulumi.Output; /** - * The number of minutes after the last notification before a monitor will re-notify + * The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + * re-notify if it's not resolved. */ public readonly renotifyInterval!: pulumi.Output; /** - * A boolean indicating whether this monitor needs a full window of data before it's evaluated. + * A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + * this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + * times` and `in total` aggregation. `false` otherwise. */ public readonly requireFullWindow!: pulumi.Output; /** - * Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + * Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + * the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + * removed in the next major version of the Terraform Provider. * * @deprecated use Downtime Resource instead */ public readonly silenced!: pulumi.Output<{[key: string]: any} | undefined>; /** - * A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + * A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + * page of the UI. Note: it's not currently possible to filter by these tags when querying via the API */ public readonly tags!: pulumi.Output; /** - * A mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m` . Can only be used for, and are required for, anomaly monitors. + * A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + * required for, anomaly monitors. + * + * @deprecated Define `monitor_threshold_windows` list with one element instead. */ public readonly thresholdWindows!: pulumi.Output; + /** + * Alert thresholds of the monitor. + * + * @deprecated Define `monitor_thresholds` list with one element instead. + */ public readonly thresholds!: pulumi.Output; /** - * The number of hours of the monitor not reporting data before it will automatically resolve + * The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + * Defaults to `false`. */ public readonly timeoutH!: pulumi.Output; /** * The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - * Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - * are below. Note: The monitor type cannot be changed after a monitor is created. + * Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + * cannot be changed after a monitor is created. */ public readonly type!: pulumi.Output; /** - * If set to false, skip the validation call done during `plan` . + * If set to `false`, skip the validation call done during plan. */ public readonly validate!: pulumi.Output; @@ -223,6 +188,8 @@ export class Monitor extends pulumi.CustomResource { inputs["includeTags"] = state ? state.includeTags : undefined; inputs["locked"] = state ? state.locked : undefined; inputs["message"] = state ? state.message : undefined; + inputs["monitorThresholdWindows"] = state ? state.monitorThresholdWindows : undefined; + inputs["monitorThresholds"] = state ? state.monitorThresholds : undefined; inputs["name"] = state ? state.name : undefined; inputs["newHostDelay"] = state ? state.newHostDelay : undefined; inputs["noDataTimeframe"] = state ? state.noDataTimeframe : undefined; @@ -260,6 +227,8 @@ export class Monitor extends pulumi.CustomResource { inputs["includeTags"] = args ? args.includeTags : undefined; inputs["locked"] = args ? args.locked : undefined; inputs["message"] = args ? args.message : undefined; + inputs["monitorThresholdWindows"] = args ? args.monitorThresholdWindows : undefined; + inputs["monitorThresholds"] = args ? args.monitorThresholds : undefined; inputs["name"] = args ? args.name : undefined; inputs["newHostDelay"] = args ? args.newHostDelay : undefined; inputs["noDataTimeframe"] = args ? args.noDataTimeframe : undefined; @@ -293,7 +262,8 @@ export class Monitor extends pulumi.CustomResource { */ export interface MonitorState { /** - * A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + * A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + * monitors. Defaults to `false`. */ readonly enableLogsSample?: pulumi.Input; /** @@ -301,19 +271,25 @@ export interface MonitorState { */ readonly escalationMessage?: pulumi.Input; /** - * Time (in seconds) to delay evaluation, as a non-negative integer. + * (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + * value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + * from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + * data during evaluation. */ readonly evaluationDelay?: pulumi.Input; /** - * A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + * A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + * composite monitor). */ readonly forceDelete?: pulumi.Input; /** - * A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + * A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + * Defaults to `true`. */ readonly includeTags?: pulumi.Input; /** - * A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + * A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + * `false`. */ readonly locked?: pulumi.Input; /** @@ -321,29 +297,37 @@ export interface MonitorState { * same `@username` notation as events. */ readonly message?: pulumi.Input; + /** + * A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + * required for, anomaly monitors. + */ + readonly monitorThresholdWindows?: pulumi.Input; + /** + * Alert thresholds of the monitor. + */ + readonly monitorThresholds?: pulumi.Input; /** * Name of Datadog monitor. */ readonly name?: pulumi.Input; /** - * Time (in seconds) to allow a host to boot and + * Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + * results. Should be a non negative integer. Defaults to `300`. */ readonly newHostDelay?: pulumi.Input; /** - * The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + * The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + * recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. */ readonly noDataTimeframe?: pulumi.Input; /** - * A boolean indicating whether tagged users will be notified on changes to this monitor. + * A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. */ readonly notifyAudit?: pulumi.Input; /** - * A boolean indicating whether this monitor will notify when data stops reporting. Defaults + * A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. */ readonly notifyNoData?: pulumi.Input; - /** - * Integer from 1 (high) to 5 (low) indicating alert severity. - */ readonly priority?: pulumi.Input; /** * The monitor query to notify on. Note this is not the same query you see in the UI and the syntax is different depending @@ -352,40 +336,55 @@ export interface MonitorState { */ readonly query?: pulumi.Input; /** - * The number of minutes after the last notification before a monitor will re-notify + * The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + * re-notify if it's not resolved. */ readonly renotifyInterval?: pulumi.Input; /** - * A boolean indicating whether this monitor needs a full window of data before it's evaluated. + * A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + * this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + * times` and `in total` aggregation. `false` otherwise. */ readonly requireFullWindow?: pulumi.Input; /** - * Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + * Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + * the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + * removed in the next major version of the Terraform Provider. * * @deprecated use Downtime Resource instead */ readonly silenced?: pulumi.Input<{[key: string]: any}>; /** - * A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + * A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + * page of the UI. Note: it's not currently possible to filter by these tags when querying via the API */ readonly tags?: pulumi.Input[]>; /** - * A mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m` . Can only be used for, and are required for, anomaly monitors. + * A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + * required for, anomaly monitors. + * + * @deprecated Define `monitor_threshold_windows` list with one element instead. */ readonly thresholdWindows?: pulumi.Input; + /** + * Alert thresholds of the monitor. + * + * @deprecated Define `monitor_thresholds` list with one element instead. + */ readonly thresholds?: pulumi.Input; /** - * The number of hours of the monitor not reporting data before it will automatically resolve + * The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + * Defaults to `false`. */ readonly timeoutH?: pulumi.Input; /** * The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - * Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - * are below. Note: The monitor type cannot be changed after a monitor is created. + * Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + * cannot be changed after a monitor is created. */ readonly type?: pulumi.Input; /** - * If set to false, skip the validation call done during `plan` . + * If set to `false`, skip the validation call done during plan. */ readonly validate?: pulumi.Input; } @@ -395,7 +394,8 @@ export interface MonitorState { */ export interface MonitorArgs { /** - * A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + * A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + * monitors. Defaults to `false`. */ readonly enableLogsSample?: pulumi.Input; /** @@ -403,19 +403,25 @@ export interface MonitorArgs { */ readonly escalationMessage?: pulumi.Input; /** - * Time (in seconds) to delay evaluation, as a non-negative integer. + * (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + * value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + * from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + * data during evaluation. */ readonly evaluationDelay?: pulumi.Input; /** - * A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + * A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + * composite monitor). */ readonly forceDelete?: pulumi.Input; /** - * A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + * A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + * Defaults to `true`. */ readonly includeTags?: pulumi.Input; /** - * A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + * A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + * `false`. */ readonly locked?: pulumi.Input; /** @@ -423,29 +429,37 @@ export interface MonitorArgs { * same `@username` notation as events. */ readonly message: pulumi.Input; + /** + * A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + * required for, anomaly monitors. + */ + readonly monitorThresholdWindows?: pulumi.Input; + /** + * Alert thresholds of the monitor. + */ + readonly monitorThresholds?: pulumi.Input; /** * Name of Datadog monitor. */ readonly name: pulumi.Input; /** - * Time (in seconds) to allow a host to boot and + * Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + * results. Should be a non negative integer. Defaults to `300`. */ readonly newHostDelay?: pulumi.Input; /** - * The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + * The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + * recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. */ readonly noDataTimeframe?: pulumi.Input; /** - * A boolean indicating whether tagged users will be notified on changes to this monitor. + * A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. */ readonly notifyAudit?: pulumi.Input; /** - * A boolean indicating whether this monitor will notify when data stops reporting. Defaults + * A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. */ readonly notifyNoData?: pulumi.Input; - /** - * Integer from 1 (high) to 5 (low) indicating alert severity. - */ readonly priority?: pulumi.Input; /** * The monitor query to notify on. Note this is not the same query you see in the UI and the syntax is different depending @@ -454,40 +468,55 @@ export interface MonitorArgs { */ readonly query: pulumi.Input; /** - * The number of minutes after the last notification before a monitor will re-notify + * The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + * re-notify if it's not resolved. */ readonly renotifyInterval?: pulumi.Input; /** - * A boolean indicating whether this monitor needs a full window of data before it's evaluated. + * A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + * this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + * times` and `in total` aggregation. `false` otherwise. */ readonly requireFullWindow?: pulumi.Input; /** - * Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + * Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + * the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + * removed in the next major version of the Terraform Provider. * * @deprecated use Downtime Resource instead */ readonly silenced?: pulumi.Input<{[key: string]: any}>; /** - * A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + * A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + * page of the UI. Note: it's not currently possible to filter by these tags when querying via the API */ readonly tags?: pulumi.Input[]>; /** - * A mapping containing `recoveryWindow` and `triggerWindow` values, e.g. `last15m` . Can only be used for, and are required for, anomaly monitors. + * A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + * required for, anomaly monitors. + * + * @deprecated Define `monitor_threshold_windows` list with one element instead. */ readonly thresholdWindows?: pulumi.Input; + /** + * Alert thresholds of the monitor. + * + * @deprecated Define `monitor_thresholds` list with one element instead. + */ readonly thresholds?: pulumi.Input; /** - * The number of hours of the monitor not reporting data before it will automatically resolve + * The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + * Defaults to `false`. */ readonly timeoutH?: pulumi.Input; /** * The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - * Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - * are below. Note: The monitor type cannot be changed after a monitor is created. + * Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + * cannot be changed after a monitor is created. */ readonly type: pulumi.Input; /** - * If set to false, skip the validation call done during `plan` . + * If set to `false`, skip the validation call done during plan. */ readonly validate?: pulumi.Input; } diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts index 9ccd840f7..69c39ffc2 100644 --- a/sdk/nodejs/provider.ts +++ b/sdk/nodejs/provider.ts @@ -61,9 +61,9 @@ export interface ProviderArgs { */ readonly apiKey?: pulumi.Input; /** - * The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the - * /api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And - * if you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. + * The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/ + * path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if + * you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. */ readonly apiUrl?: pulumi.Input; /** @@ -72,7 +72,7 @@ export interface ProviderArgs { readonly appKey?: pulumi.Input; /** * Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key - * and app_keywon't be checked. + * and app_key won't be checked. */ readonly validate?: pulumi.Input; } diff --git a/sdk/nodejs/syntheticsGlobalVariable.ts b/sdk/nodejs/syntheticsGlobalVariable.ts index 57b018aeb..6c125109c 100644 --- a/sdk/nodejs/syntheticsGlobalVariable.ts +++ b/sdk/nodejs/syntheticsGlobalVariable.ts @@ -2,6 +2,7 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs } from "./types"; import * as utilities from "./utilities"; /** @@ -68,6 +69,14 @@ export class SyntheticsGlobalVariable extends pulumi.CustomResource { * Synthetics global variable name. */ public readonly name!: pulumi.Output; + /** + * Id of the Synthetics test to use for a variable from test. + */ + public readonly parseTestId!: pulumi.Output; + /** + * ID of the Synthetics test to use a source of the global variable value. + */ + public readonly parseTestOptions!: pulumi.Output; /** * Sets the variable as secure. Defaults to `false`. */ @@ -95,6 +104,8 @@ export class SyntheticsGlobalVariable extends pulumi.CustomResource { const state = argsOrState as SyntheticsGlobalVariableState | undefined; inputs["description"] = state ? state.description : undefined; inputs["name"] = state ? state.name : undefined; + inputs["parseTestId"] = state ? state.parseTestId : undefined; + inputs["parseTestOptions"] = state ? state.parseTestOptions : undefined; inputs["secure"] = state ? state.secure : undefined; inputs["tags"] = state ? state.tags : undefined; inputs["value"] = state ? state.value : undefined; @@ -108,6 +119,8 @@ export class SyntheticsGlobalVariable extends pulumi.CustomResource { } inputs["description"] = args ? args.description : undefined; inputs["name"] = args ? args.name : undefined; + inputs["parseTestId"] = args ? args.parseTestId : undefined; + inputs["parseTestOptions"] = args ? args.parseTestOptions : undefined; inputs["secure"] = args ? args.secure : undefined; inputs["tags"] = args ? args.tags : undefined; inputs["value"] = args ? args.value : undefined; @@ -135,6 +148,14 @@ export interface SyntheticsGlobalVariableState { * Synthetics global variable name. */ readonly name?: pulumi.Input; + /** + * Id of the Synthetics test to use for a variable from test. + */ + readonly parseTestId?: pulumi.Input; + /** + * ID of the Synthetics test to use a source of the global variable value. + */ + readonly parseTestOptions?: pulumi.Input; /** * Sets the variable as secure. Defaults to `false`. */ @@ -161,6 +182,14 @@ export interface SyntheticsGlobalVariableArgs { * Synthetics global variable name. */ readonly name: pulumi.Input; + /** + * Id of the Synthetics test to use for a variable from test. + */ + readonly parseTestId?: pulumi.Input; + /** + * ID of the Synthetics test to use a source of the global variable value. + */ + readonly parseTestOptions?: pulumi.Input; /** * Sets the variable as secure. Defaults to `false`. */ diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index d60b15945..1640555e5 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -41,6 +41,7 @@ "logsIndex.ts", "logsIndexOrder.ts", "logsIntegrationPipeline.ts", + "logsMetric.ts", "logsPipelineOrder.ts", "metricMetadata.ts", "monitor.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 692fc6b3c..c6f437f40 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -37,6 +37,7 @@ export interface DashboardWidget { groupDefinition?: pulumi.Input; heatmapDefinition?: pulumi.Input; hostmapDefinition?: pulumi.Input; + id?: pulumi.Input; iframeDefinition?: pulumi.Input; imageDefinition?: pulumi.Input; layout?: pulumi.Input; @@ -506,6 +507,7 @@ export interface DashboardWidgetGroupDefinitionWidget { freeTextDefinition?: pulumi.Input; heatmapDefinition?: pulumi.Input; hostmapDefinition?: pulumi.Input; + id?: pulumi.Input; iframeDefinition?: pulumi.Input; imageDefinition?: pulumi.Input; layout?: pulumi.Input; @@ -4789,6 +4791,14 @@ export interface LogsArchiveAzure { tenantId: pulumi.Input; } +export interface LogsArchiveAzureArchive { + clientId: pulumi.Input; + container: pulumi.Input; + path?: pulumi.Input; + storageAccount: pulumi.Input; + tenantId: pulumi.Input; +} + export interface LogsArchiveGcs { bucket: pulumi.Input; clientEmail: pulumi.Input; @@ -4796,12 +4806,24 @@ export interface LogsArchiveGcs { projectId: pulumi.Input; } -export interface LogsArchiveS3 { - accountId: pulumi.Input; +export interface LogsArchiveGcsArchive { bucket: pulumi.Input; clientEmail: pulumi.Input; path: pulumi.Input; projectId: pulumi.Input; +} + +export interface LogsArchiveS3 { + accountId: pulumi.Input; + bucket: pulumi.Input; + path: pulumi.Input; + roleName: pulumi.Input; +} + +export interface LogsArchiveS3Archive { + accountId: pulumi.Input; + bucket: pulumi.Input; + path: pulumi.Input; roleName: pulumi.Input; } @@ -5108,14 +5130,36 @@ export interface LogsIndexFilter { query: pulumi.Input; } +export interface LogsMetricCompute { + aggregationType: pulumi.Input; + path?: pulumi.Input; +} + +export interface LogsMetricFilter { + query: pulumi.Input; +} + +export interface LogsMetricGroupBy { + path: pulumi.Input; + tagName: pulumi.Input; +} + +export interface MonitorMonitorThresholdWindows { + recoveryWindow?: pulumi.Input; + triggerWindow?: pulumi.Input; +} + +export interface MonitorMonitorThresholds { + critical?: pulumi.Input; + criticalRecovery?: pulumi.Input; + ok?: pulumi.Input; + unknown?: pulumi.Input; + warning?: pulumi.Input; + warningRecovery?: pulumi.Input; +} + export interface MonitorThresholdWindows { - /** - * describes how long an anomalous metric must be normal before the alert recovers. - */ recoveryWindow?: pulumi.Input; - /** - * describes how long a metric must be anomalous before an alert triggers. - */ triggerWindow?: pulumi.Input; } @@ -5380,6 +5424,17 @@ export interface ServiceLevelObjectiveThreshold { warningDisplay?: pulumi.Input; } +export interface SyntheticsGlobalVariableParseTestOptions { + field?: pulumi.Input; + parser: pulumi.Input; + type: pulumi.Input; +} + +export interface SyntheticsGlobalVariableParseTestOptionsParser { + type: pulumi.Input; + value?: pulumi.Input; +} + export interface SyntheticsTestBrowserVariable { example?: pulumi.Input; id?: pulumi.Input; diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index a779d2bd1..8e448dc32 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -37,6 +37,7 @@ export interface DashboardWidget { groupDefinition?: outputs.DashboardWidgetGroupDefinition; heatmapDefinition?: outputs.DashboardWidgetHeatmapDefinition; hostmapDefinition?: outputs.DashboardWidgetHostmapDefinition; + id: number; iframeDefinition?: outputs.DashboardWidgetIframeDefinition; imageDefinition?: outputs.DashboardWidgetImageDefinition; layout?: outputs.DashboardWidgetLayout; @@ -506,6 +507,7 @@ export interface DashboardWidgetGroupDefinitionWidget { freeTextDefinition?: outputs.DashboardWidgetGroupDefinitionWidgetFreeTextDefinition; heatmapDefinition?: outputs.DashboardWidgetGroupDefinitionWidgetHeatmapDefinition; hostmapDefinition?: outputs.DashboardWidgetGroupDefinitionWidgetHostmapDefinition; + id: number; iframeDefinition?: outputs.DashboardWidgetGroupDefinitionWidgetIframeDefinition; imageDefinition?: outputs.DashboardWidgetGroupDefinitionWidgetImageDefinition; layout?: outputs.DashboardWidgetGroupDefinitionWidgetLayout; @@ -4781,6 +4783,20 @@ export interface DowntimeRecurrence { weekDays?: string[]; } +export interface GetMonitorMonitorThresholdWindows { + recoveryWindow: string; + triggerWindow: string; +} + +export interface GetMonitorMonitorThresholds { + critical: string; + criticalRecovery: string; + ok: string; + unknown: string; + warning: string; + warningRecovery: string; +} + export interface GetMonitorThresholdWindows { recoveryWindow: string; triggerWindow: string; @@ -4835,6 +4851,14 @@ export interface LogsArchiveAzure { tenantId: string; } +export interface LogsArchiveAzureArchive { + clientId: string; + container: string; + path?: string; + storageAccount: string; + tenantId: string; +} + export interface LogsArchiveGcs { bucket: string; clientEmail: string; @@ -4842,12 +4866,24 @@ export interface LogsArchiveGcs { projectId: string; } -export interface LogsArchiveS3 { - accountId: string; +export interface LogsArchiveGcsArchive { bucket: string; clientEmail: string; path: string; projectId: string; +} + +export interface LogsArchiveS3 { + accountId: string; + bucket: string; + path: string; + roleName: string; +} + +export interface LogsArchiveS3Archive { + accountId: string; + bucket: string; + path: string; roleName: string; } @@ -5154,14 +5190,36 @@ export interface LogsIndexFilter { query: string; } +export interface LogsMetricCompute { + aggregationType: string; + path?: string; +} + +export interface LogsMetricFilter { + query: string; +} + +export interface LogsMetricGroupBy { + path: string; + tagName: string; +} + +export interface MonitorMonitorThresholdWindows { + recoveryWindow?: string; + triggerWindow?: string; +} + +export interface MonitorMonitorThresholds { + critical?: string; + criticalRecovery?: string; + ok?: string; + unknown?: string; + warning?: string; + warningRecovery?: string; +} + export interface MonitorThresholdWindows { - /** - * describes how long an anomalous metric must be normal before the alert recovers. - */ recoveryWindow?: string; - /** - * describes how long a metric must be anomalous before an alert triggers. - */ triggerWindow?: string; } @@ -5426,6 +5484,17 @@ export interface ServiceLevelObjectiveThreshold { warningDisplay?: string; } +export interface SyntheticsGlobalVariableParseTestOptions { + field?: string; + parser: outputs.SyntheticsGlobalVariableParseTestOptionsParser; + type: string; +} + +export interface SyntheticsGlobalVariableParseTestOptionsParser { + type: string; + value?: string; +} + export interface SyntheticsTestBrowserVariable { example?: string; id?: string; diff --git a/sdk/nodejs/user.ts b/sdk/nodejs/user.ts index a3b929b75..580cb42db 100644 --- a/sdk/nodejs/user.ts +++ b/sdk/nodejs/user.ts @@ -22,10 +22,32 @@ import * as utilities from "./utilities"; * roles: [roRole.then(roRole => roRole.id)], * }); * ``` + * ## Schema + * + * ### Required + * + * - **email** (String) Email address for user. + * + * ### Optional + * + * - **access_role** (String, Deprecated) Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. `accessRole` is ignored for new users created with this resource. New users have to use the `roles` attribute. + * - **disabled** (Boolean) Whether the user is disabled. + * - **handle** (String, Deprecated) The user handle, must be a valid email. + * - **id** (String) The ID of this resource. + * - **is_admin** (Boolean, Deprecated) Whether the user is an administrator. Warning: the corresponding query parameter is ignored by the Datadog API, thus the argument would always trigger an execution plan. + * - **name** (String) Name for user. + * - **role** (String, Deprecated) Role description for user. Warning: the corresponding query parameter is ignored by the Datadog API, thus the argument would always trigger an execution plan. + * - **roles** (Set of String) A list a role IDs to assign to the user. + * - **send_user_invitation** (Boolean) Whether an invitation email should be sent when the user is created. + * + * ### Read-only + * + * - **user_invitation_id** (String) The ID of the user invitation that was sent when creating the user. + * - **verified** (Boolean) Returns true if Datadog user is verified. * * ## Import * - * users can be imported using their ID, e.g. + * Import is supported using the following syntax * * ```sh * $ pulumi import datadog:index/user:User example_user 6f1b44c0-30b2-11eb-86bc-279f7c1ebaa4 @@ -62,6 +84,8 @@ export class User extends pulumi.CustomResource { /** * Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. * `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute. + * + * @deprecated This parameter is replaced by `roles` and will be removed from the next Major version */ public readonly accessRole!: pulumi.Output; /** @@ -171,6 +195,8 @@ export interface UserState { /** * Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. * `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute. + * + * @deprecated This parameter is replaced by `roles` and will be removed from the next Major version */ readonly accessRole?: pulumi.Input; /** @@ -230,6 +256,8 @@ export interface UserArgs { /** * Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. * `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute. + * + * @deprecated This parameter is replaced by `roles` and will be removed from the next Major version */ readonly accessRole?: pulumi.Input; /** diff --git a/sdk/python/pulumi_datadog/__init__.py b/sdk/python/pulumi_datadog/__init__.py index 72a7df479..bafdcfc44 100644 --- a/sdk/python/pulumi_datadog/__init__.py +++ b/sdk/python/pulumi_datadog/__init__.py @@ -20,6 +20,7 @@ from .logs_index import * from .logs_index_order import * from .logs_integration_pipeline import * +from .logs_metric import * from .logs_pipeline_order import * from .metric_metadata import * from .monitor import * @@ -75,6 +76,8 @@ def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: return LogsIndexOrder(name, pulumi.ResourceOptions(urn=urn)) elif typ == "datadog:index/logsIntegrationPipeline:LogsIntegrationPipeline": return LogsIntegrationPipeline(name, pulumi.ResourceOptions(urn=urn)) + elif typ == "datadog:index/logsMetric:LogsMetric": + return LogsMetric(name, pulumi.ResourceOptions(urn=urn)) elif typ == "datadog:index/logsPipelineOrder:LogsPipelineOrder": return LogsPipelineOrder(name, pulumi.ResourceOptions(urn=urn)) elif typ == "datadog:index/metricMetadata:MetricMetadata": @@ -113,6 +116,7 @@ def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: pulumi.runtime.register_resource_module("datadog", "index/logsIndex", _module_instance) pulumi.runtime.register_resource_module("datadog", "index/logsIndexOrder", _module_instance) pulumi.runtime.register_resource_module("datadog", "index/logsIntegrationPipeline", _module_instance) + pulumi.runtime.register_resource_module("datadog", "index/logsMetric", _module_instance) pulumi.runtime.register_resource_module("datadog", "index/logsPipelineOrder", _module_instance) pulumi.runtime.register_resource_module("datadog", "index/metricMetadata", _module_instance) pulumi.runtime.register_resource_module("datadog", "index/monitor", _module_instance) diff --git a/sdk/python/pulumi_datadog/_inputs.py b/sdk/python/pulumi_datadog/_inputs.py index b18e8c92c..cb20cce88 100644 --- a/sdk/python/pulumi_datadog/_inputs.py +++ b/sdk/python/pulumi_datadog/_inputs.py @@ -740,8 +740,11 @@ 'DashboardWidgetTraceServiceDefinitionTimeArgs', 'DowntimeRecurrenceArgs', 'LogsArchiveAzureArgs', + 'LogsArchiveAzureArchiveArgs', 'LogsArchiveGcsArgs', + 'LogsArchiveGcsArchiveArgs', 'LogsArchiveS3Args', + 'LogsArchiveS3ArchiveArgs', 'LogsCustomPipelineFilterArgs', 'LogsCustomPipelineProcessorArgs', 'LogsCustomPipelineProcessorArithmeticProcessorArgs', @@ -784,6 +787,11 @@ 'LogsIndexExclusionFilterArgs', 'LogsIndexExclusionFilterFilterArgs', 'LogsIndexFilterArgs', + 'LogsMetricComputeArgs', + 'LogsMetricFilterArgs', + 'LogsMetricGroupByArgs', + 'MonitorMonitorThresholdWindowsArgs', + 'MonitorMonitorThresholdsArgs', 'MonitorThresholdWindowsArgs', 'MonitorThresholdsArgs', 'RolePermissionArgs', @@ -811,6 +819,8 @@ 'SecurityMonitoringRuleQueryArgs', 'ServiceLevelObjectiveQueryArgs', 'ServiceLevelObjectiveThresholdArgs', + 'SyntheticsGlobalVariableParseTestOptionsArgs', + 'SyntheticsGlobalVariableParseTestOptionsParserArgs', 'SyntheticsTestBrowserVariableArgs', 'SyntheticsTestConfigVariableArgs', 'SyntheticsTestOptionsArgs', @@ -977,6 +987,7 @@ def __init__(__self__, *, group_definition: Optional[pulumi.Input['DashboardWidgetGroupDefinitionArgs']] = None, heatmap_definition: Optional[pulumi.Input['DashboardWidgetHeatmapDefinitionArgs']] = None, hostmap_definition: Optional[pulumi.Input['DashboardWidgetHostmapDefinitionArgs']] = None, + id: Optional[pulumi.Input[int]] = None, iframe_definition: Optional[pulumi.Input['DashboardWidgetIframeDefinitionArgs']] = None, image_definition: Optional[pulumi.Input['DashboardWidgetImageDefinitionArgs']] = None, layout: Optional[pulumi.Input['DashboardWidgetLayoutArgs']] = None, @@ -1013,6 +1024,8 @@ def __init__(__self__, *, pulumi.set(__self__, "heatmap_definition", heatmap_definition) if hostmap_definition is not None: pulumi.set(__self__, "hostmap_definition", hostmap_definition) + if id is not None: + pulumi.set(__self__, "id", id) if iframe_definition is not None: pulumi.set(__self__, "iframe_definition", iframe_definition) if image_definition is not None: @@ -1141,6 +1154,15 @@ def hostmap_definition(self) -> Optional[pulumi.Input['DashboardWidgetHostmapDef def hostmap_definition(self, value: Optional[pulumi.Input['DashboardWidgetHostmapDefinitionArgs']]): pulumi.set(self, "hostmap_definition", value) + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "id", value) + @property @pulumi.getter(name="iframeDefinition") def iframe_definition(self) -> Optional[pulumi.Input['DashboardWidgetIframeDefinitionArgs']]: @@ -4384,6 +4406,7 @@ def __init__(__self__, *, free_text_definition: Optional[pulumi.Input['DashboardWidgetGroupDefinitionWidgetFreeTextDefinitionArgs']] = None, heatmap_definition: Optional[pulumi.Input['DashboardWidgetGroupDefinitionWidgetHeatmapDefinitionArgs']] = None, hostmap_definition: Optional[pulumi.Input['DashboardWidgetGroupDefinitionWidgetHostmapDefinitionArgs']] = None, + id: Optional[pulumi.Input[int]] = None, iframe_definition: Optional[pulumi.Input['DashboardWidgetGroupDefinitionWidgetIframeDefinitionArgs']] = None, image_definition: Optional[pulumi.Input['DashboardWidgetGroupDefinitionWidgetImageDefinitionArgs']] = None, layout: Optional[pulumi.Input['DashboardWidgetGroupDefinitionWidgetLayoutArgs']] = None, @@ -4418,6 +4441,8 @@ def __init__(__self__, *, pulumi.set(__self__, "heatmap_definition", heatmap_definition) if hostmap_definition is not None: pulumi.set(__self__, "hostmap_definition", hostmap_definition) + if id is not None: + pulumi.set(__self__, "id", id) if iframe_definition is not None: pulumi.set(__self__, "iframe_definition", iframe_definition) if image_definition is not None: @@ -4537,6 +4562,15 @@ def hostmap_definition(self) -> Optional[pulumi.Input['DashboardWidgetGroupDefin def hostmap_definition(self, value: Optional[pulumi.Input['DashboardWidgetGroupDefinitionWidgetHostmapDefinitionArgs']]): pulumi.set(self, "hostmap_definition", value) + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "id", value) + @property @pulumi.getter(name="iframeDefinition") def iframe_definition(self) -> Optional[pulumi.Input['DashboardWidgetGroupDefinitionWidgetIframeDefinitionArgs']]: @@ -34699,6 +34733,67 @@ def path(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "path", value) +@pulumi.input_type +class LogsArchiveAzureArchiveArgs: + def __init__(__self__, *, + client_id: pulumi.Input[str], + container: pulumi.Input[str], + storage_account: pulumi.Input[str], + tenant_id: pulumi.Input[str], + path: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "client_id", client_id) + pulumi.set(__self__, "container", container) + pulumi.set(__self__, "storage_account", storage_account) + pulumi.set(__self__, "tenant_id", tenant_id) + if path is not None: + pulumi.set(__self__, "path", path) + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "client_id") + + @client_id.setter + def client_id(self, value: pulumi.Input[str]): + pulumi.set(self, "client_id", value) + + @property + @pulumi.getter + def container(self) -> pulumi.Input[str]: + return pulumi.get(self, "container") + + @container.setter + def container(self, value: pulumi.Input[str]): + pulumi.set(self, "container", value) + + @property + @pulumi.getter(name="storageAccount") + def storage_account(self) -> pulumi.Input[str]: + return pulumi.get(self, "storage_account") + + @storage_account.setter + def storage_account(self, value: pulumi.Input[str]): + pulumi.set(self, "storage_account", value) + + @property + @pulumi.getter(name="tenantId") + def tenant_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "tenant_id") + + @tenant_id.setter + def tenant_id(self, value: pulumi.Input[str]): + pulumi.set(self, "tenant_id", value) + + @property + @pulumi.getter + def path(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "path") + + @path.setter + def path(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "path", value) + + @pulumi.input_type class LogsArchiveGcsArgs: def __init__(__self__, *, @@ -34749,29 +34844,16 @@ def project_id(self, value: pulumi.Input[str]): @pulumi.input_type -class LogsArchiveS3Args: +class LogsArchiveGcsArchiveArgs: def __init__(__self__, *, - account_id: pulumi.Input[str], bucket: pulumi.Input[str], client_email: pulumi.Input[str], path: pulumi.Input[str], - project_id: pulumi.Input[str], - role_name: pulumi.Input[str]): - pulumi.set(__self__, "account_id", account_id) + project_id: pulumi.Input[str]): pulumi.set(__self__, "bucket", bucket) pulumi.set(__self__, "client_email", client_email) pulumi.set(__self__, "path", path) pulumi.set(__self__, "project_id", project_id) - pulumi.set(__self__, "role_name", role_name) - - @property - @pulumi.getter(name="accountId") - def account_id(self) -> pulumi.Input[str]: - return pulumi.get(self, "account_id") - - @account_id.setter - def account_id(self, value: pulumi.Input[str]): - pulumi.set(self, "account_id", value) @property @pulumi.getter @@ -34809,6 +34891,95 @@ def project_id(self) -> pulumi.Input[str]: def project_id(self, value: pulumi.Input[str]): pulumi.set(self, "project_id", value) + +@pulumi.input_type +class LogsArchiveS3Args: + def __init__(__self__, *, + account_id: pulumi.Input[str], + bucket: pulumi.Input[str], + path: pulumi.Input[str], + role_name: pulumi.Input[str]): + pulumi.set(__self__, "account_id", account_id) + pulumi.set(__self__, "bucket", bucket) + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "role_name", role_name) + + @property + @pulumi.getter(name="accountId") + def account_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "account_id") + + @account_id.setter + def account_id(self, value: pulumi.Input[str]): + pulumi.set(self, "account_id", value) + + @property + @pulumi.getter + def bucket(self) -> pulumi.Input[str]: + return pulumi.get(self, "bucket") + + @bucket.setter + def bucket(self, value: pulumi.Input[str]): + pulumi.set(self, "bucket", value) + + @property + @pulumi.getter + def path(self) -> pulumi.Input[str]: + return pulumi.get(self, "path") + + @path.setter + def path(self, value: pulumi.Input[str]): + pulumi.set(self, "path", value) + + @property + @pulumi.getter(name="roleName") + def role_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "role_name") + + @role_name.setter + def role_name(self, value: pulumi.Input[str]): + pulumi.set(self, "role_name", value) + + +@pulumi.input_type +class LogsArchiveS3ArchiveArgs: + def __init__(__self__, *, + account_id: pulumi.Input[str], + bucket: pulumi.Input[str], + path: pulumi.Input[str], + role_name: pulumi.Input[str]): + pulumi.set(__self__, "account_id", account_id) + pulumi.set(__self__, "bucket", bucket) + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "role_name", role_name) + + @property + @pulumi.getter(name="accountId") + def account_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "account_id") + + @account_id.setter + def account_id(self, value: pulumi.Input[str]): + pulumi.set(self, "account_id", value) + + @property + @pulumi.getter + def bucket(self) -> pulumi.Input[str]: + return pulumi.get(self, "bucket") + + @bucket.setter + def bucket(self, value: pulumi.Input[str]): + pulumi.set(self, "bucket", value) + + @property + @pulumi.getter + def path(self) -> pulumi.Input[str]: + return pulumi.get(self, "path") + + @path.setter + def path(self, value: pulumi.Input[str]): + pulumi.set(self, "path", value) + @property @pulumi.getter(name="roleName") def role_name(self) -> pulumi.Input[str]: @@ -37086,15 +37257,188 @@ def query(self, value: pulumi.Input[str]): pulumi.set(self, "query", value) +@pulumi.input_type +class LogsMetricComputeArgs: + def __init__(__self__, *, + aggregation_type: pulumi.Input[str], + path: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "aggregation_type", aggregation_type) + if path is not None: + pulumi.set(__self__, "path", path) + + @property + @pulumi.getter(name="aggregationType") + def aggregation_type(self) -> pulumi.Input[str]: + return pulumi.get(self, "aggregation_type") + + @aggregation_type.setter + def aggregation_type(self, value: pulumi.Input[str]): + pulumi.set(self, "aggregation_type", value) + + @property + @pulumi.getter + def path(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "path") + + @path.setter + def path(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "path", value) + + +@pulumi.input_type +class LogsMetricFilterArgs: + def __init__(__self__, *, + query: pulumi.Input[str]): + pulumi.set(__self__, "query", query) + + @property + @pulumi.getter + def query(self) -> pulumi.Input[str]: + return pulumi.get(self, "query") + + @query.setter + def query(self, value: pulumi.Input[str]): + pulumi.set(self, "query", value) + + +@pulumi.input_type +class LogsMetricGroupByArgs: + def __init__(__self__, *, + path: pulumi.Input[str], + tag_name: pulumi.Input[str]): + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "tag_name", tag_name) + + @property + @pulumi.getter + def path(self) -> pulumi.Input[str]: + return pulumi.get(self, "path") + + @path.setter + def path(self, value: pulumi.Input[str]): + pulumi.set(self, "path", value) + + @property + @pulumi.getter(name="tagName") + def tag_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "tag_name") + + @tag_name.setter + def tag_name(self, value: pulumi.Input[str]): + pulumi.set(self, "tag_name", value) + + +@pulumi.input_type +class MonitorMonitorThresholdWindowsArgs: + def __init__(__self__, *, + recovery_window: Optional[pulumi.Input[str]] = None, + trigger_window: Optional[pulumi.Input[str]] = None): + if recovery_window is not None: + pulumi.set(__self__, "recovery_window", recovery_window) + if trigger_window is not None: + pulumi.set(__self__, "trigger_window", trigger_window) + + @property + @pulumi.getter(name="recoveryWindow") + def recovery_window(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "recovery_window") + + @recovery_window.setter + def recovery_window(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "recovery_window", value) + + @property + @pulumi.getter(name="triggerWindow") + def trigger_window(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "trigger_window") + + @trigger_window.setter + def trigger_window(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "trigger_window", value) + + +@pulumi.input_type +class MonitorMonitorThresholdsArgs: + def __init__(__self__, *, + critical: Optional[pulumi.Input[str]] = None, + critical_recovery: Optional[pulumi.Input[str]] = None, + ok: Optional[pulumi.Input[str]] = None, + unknown: Optional[pulumi.Input[str]] = None, + warning: Optional[pulumi.Input[str]] = None, + warning_recovery: Optional[pulumi.Input[str]] = None): + if critical is not None: + pulumi.set(__self__, "critical", critical) + if critical_recovery is not None: + pulumi.set(__self__, "critical_recovery", critical_recovery) + if ok is not None: + pulumi.set(__self__, "ok", ok) + if unknown is not None: + pulumi.set(__self__, "unknown", unknown) + if warning is not None: + pulumi.set(__self__, "warning", warning) + if warning_recovery is not None: + pulumi.set(__self__, "warning_recovery", warning_recovery) + + @property + @pulumi.getter + def critical(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "critical") + + @critical.setter + def critical(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "critical", value) + + @property + @pulumi.getter(name="criticalRecovery") + def critical_recovery(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "critical_recovery") + + @critical_recovery.setter + def critical_recovery(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "critical_recovery", value) + + @property + @pulumi.getter + def ok(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ok") + + @ok.setter + def ok(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ok", value) + + @property + @pulumi.getter + def unknown(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "unknown") + + @unknown.setter + def unknown(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "unknown", value) + + @property + @pulumi.getter + def warning(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "warning") + + @warning.setter + def warning(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "warning", value) + + @property + @pulumi.getter(name="warningRecovery") + def warning_recovery(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "warning_recovery") + + @warning_recovery.setter + def warning_recovery(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "warning_recovery", value) + + @pulumi.input_type class MonitorThresholdWindowsArgs: def __init__(__self__, *, recovery_window: Optional[pulumi.Input[str]] = None, trigger_window: Optional[pulumi.Input[str]] = None): - """ - :param pulumi.Input[str] recovery_window: describes how long an anomalous metric must be normal before the alert recovers. - :param pulumi.Input[str] trigger_window: describes how long a metric must be anomalous before an alert triggers. - """ if recovery_window is not None: pulumi.set(__self__, "recovery_window", recovery_window) if trigger_window is not None: @@ -37103,9 +37447,6 @@ def __init__(__self__, *, @property @pulumi.getter(name="recoveryWindow") def recovery_window(self) -> Optional[pulumi.Input[str]]: - """ - describes how long an anomalous metric must be normal before the alert recovers. - """ return pulumi.get(self, "recovery_window") @recovery_window.setter @@ -37115,9 +37456,6 @@ def recovery_window(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="triggerWindow") def trigger_window(self) -> Optional[pulumi.Input[str]]: - """ - describes how long a metric must be anomalous before an alert triggers. - """ return pulumi.get(self, "trigger_window") @trigger_window.setter @@ -39316,6 +39654,73 @@ def warning_display(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "warning_display", value) +@pulumi.input_type +class SyntheticsGlobalVariableParseTestOptionsArgs: + def __init__(__self__, *, + parser: pulumi.Input['SyntheticsGlobalVariableParseTestOptionsParserArgs'], + type: pulumi.Input[str], + field: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "parser", parser) + pulumi.set(__self__, "type", type) + if field is not None: + pulumi.set(__self__, "field", field) + + @property + @pulumi.getter + def parser(self) -> pulumi.Input['SyntheticsGlobalVariableParseTestOptionsParserArgs']: + return pulumi.get(self, "parser") + + @parser.setter + def parser(self, value: pulumi.Input['SyntheticsGlobalVariableParseTestOptionsParserArgs']): + pulumi.set(self, "parser", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def field(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "field") + + @field.setter + def field(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "field", value) + + +@pulumi.input_type +class SyntheticsGlobalVariableParseTestOptionsParserArgs: + def __init__(__self__, *, + type: pulumi.Input[str], + value: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "type", type) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + @pulumi.input_type class SyntheticsTestBrowserVariableArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_datadog/_tables.py b/sdk/python/pulumi_datadog/_tables.py index 9b4be4bb6..befb23ff3 100644 --- a/sdk/python/pulumi_datadog/_tables.py +++ b/sdk/python/pulumi_datadog/_tables.py @@ -13,6 +13,7 @@ "api_url": "apiUrl", "app_key": "appKey", "archive_ids": "archiveIds", + "azure_archive": "azureArchive", "browser_variables": "browserVariables", "client_email": "clientEmail", "client_id": "clientId", @@ -34,6 +35,8 @@ "filter_tags": "filterTags", "follow_redirects": "followRedirects", "force_delete": "forceDelete", + "gcs_archive": "gcsArchive", + "group_bies": "groupBies", "host_filters": "hostFilters", "host_tags": "hostTags", "include_tags": "includeTags", @@ -48,12 +51,16 @@ "monitor_id": "monitorId", "monitor_ids": "monitorIds", "monitor_tags": "monitorTags", + "monitor_threshold_windows": "monitorThresholdWindows", + "monitor_thresholds": "monitorThresholds", "new_host_delay": "newHostDelay", "no_data_timeframe": "noDataTimeframe", "notify_audit": "notifyAudit", "notify_lists": "notifyLists", "notify_no_data": "notifyNoData", "options_list": "optionsList", + "parse_test_id": "parseTestId", + "parse_test_options": "parseTestOptions", "per_unit": "perUnit", "private_key": "privateKey", "private_key_id": "privateKeyId", @@ -70,6 +77,7 @@ "retry_count": "retryCount", "retry_interval": "retryInterval", "role_name": "roleName", + "s3_archive": "s3Archive", "send_user_invitation": "sendUserInvitation", "service_key": "serviceKey", "service_name": "serviceName", @@ -101,6 +109,7 @@ "apiUrl": "api_url", "appKey": "app_key", "archiveIds": "archive_ids", + "azureArchive": "azure_archive", "browserVariables": "browser_variables", "clientEmail": "client_email", "clientId": "client_id", @@ -122,6 +131,8 @@ "filterTags": "filter_tags", "followRedirects": "follow_redirects", "forceDelete": "force_delete", + "gcsArchive": "gcs_archive", + "groupBies": "group_bies", "hostFilters": "host_filters", "hostTags": "host_tags", "includeTags": "include_tags", @@ -136,12 +147,16 @@ "monitorId": "monitor_id", "monitorIds": "monitor_ids", "monitorTags": "monitor_tags", + "monitorThresholdWindows": "monitor_threshold_windows", + "monitorThresholds": "monitor_thresholds", "newHostDelay": "new_host_delay", "noDataTimeframe": "no_data_timeframe", "notifyAudit": "notify_audit", "notifyLists": "notify_lists", "notifyNoData": "notify_no_data", "optionsList": "options_list", + "parseTestId": "parse_test_id", + "parseTestOptions": "parse_test_options", "perUnit": "per_unit", "privateKey": "private_key", "privateKeyId": "private_key_id", @@ -158,6 +173,7 @@ "retryCount": "retry_count", "retryInterval": "retry_interval", "roleName": "role_name", + "s3Archive": "s3_archive", "sendUserInvitation": "send_user_invitation", "serviceKey": "service_key", "serviceName": "service_name", diff --git a/sdk/python/pulumi_datadog/config/vars.py b/sdk/python/pulumi_datadog/config/vars.py index 8bcb5e2e8..ff4d98dce 100644 --- a/sdk/python/pulumi_datadog/config/vars.py +++ b/sdk/python/pulumi_datadog/config/vars.py @@ -24,9 +24,9 @@ api_url = __config__.get('apiUrl') or _utilities.get_env('DATADOG_HOST') """ -The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the -/api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And -if you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. +The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/ +path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if +you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. """ app_key = __config__.get('appKey') or _utilities.get_env('DATADOG_APP_KEY') @@ -37,6 +37,6 @@ validate = __config__.get('validate') """ Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key -and app_keywon't be checked. +and app_key won't be checked. """ diff --git a/sdk/python/pulumi_datadog/get_monitor.py b/sdk/python/pulumi_datadog/get_monitor.py index e5a746fca..5f4320443 100644 --- a/sdk/python/pulumi_datadog/get_monitor.py +++ b/sdk/python/pulumi_datadog/get_monitor.py @@ -20,7 +20,7 @@ class GetMonitorResult: """ A collection of values returned by getMonitor. """ - def __init__(__self__, enable_logs_sample=None, escalation_message=None, evaluation_delay=None, id=None, include_tags=None, locked=None, message=None, monitor_tags_filters=None, name=None, name_filter=None, new_host_delay=None, no_data_timeframe=None, notify_audit=None, notify_no_data=None, query=None, renotify_interval=None, require_full_window=None, tags=None, tags_filters=None, threshold_windows=None, thresholds=None, timeout_h=None, type=None): + def __init__(__self__, enable_logs_sample=None, escalation_message=None, evaluation_delay=None, id=None, include_tags=None, locked=None, message=None, monitor_tags_filters=None, monitor_threshold_windows=None, monitor_thresholds=None, name=None, name_filter=None, new_host_delay=None, no_data_timeframe=None, notify_audit=None, notify_no_data=None, query=None, renotify_interval=None, require_full_window=None, tags=None, tags_filters=None, threshold_windows=None, thresholds=None, timeout_h=None, type=None): if enable_logs_sample and not isinstance(enable_logs_sample, bool): raise TypeError("Expected argument 'enable_logs_sample' to be a bool") pulumi.set(__self__, "enable_logs_sample", enable_logs_sample) @@ -45,6 +45,12 @@ def __init__(__self__, enable_logs_sample=None, escalation_message=None, evaluat if monitor_tags_filters and not isinstance(monitor_tags_filters, list): raise TypeError("Expected argument 'monitor_tags_filters' to be a list") pulumi.set(__self__, "monitor_tags_filters", monitor_tags_filters) + if monitor_threshold_windows and not isinstance(monitor_threshold_windows, dict): + raise TypeError("Expected argument 'monitor_threshold_windows' to be a dict") + pulumi.set(__self__, "monitor_threshold_windows", monitor_threshold_windows) + if monitor_thresholds and not isinstance(monitor_thresholds, dict): + raise TypeError("Expected argument 'monitor_thresholds' to be a dict") + pulumi.set(__self__, "monitor_thresholds", monitor_thresholds) if name and not isinstance(name, str): raise TypeError("Expected argument 'name' to be a str") pulumi.set(__self__, "name", name) @@ -80,9 +86,17 @@ def __init__(__self__, enable_logs_sample=None, escalation_message=None, evaluat pulumi.set(__self__, "tags_filters", tags_filters) if threshold_windows and not isinstance(threshold_windows, dict): raise TypeError("Expected argument 'threshold_windows' to be a dict") + if threshold_windows is not None: + warnings.warn("""Define `monitor_threshold_windows` list with one element instead.""", DeprecationWarning) + pulumi.log.warn("threshold_windows is deprecated: Define `monitor_threshold_windows` list with one element instead.") + pulumi.set(__self__, "threshold_windows", threshold_windows) if thresholds and not isinstance(thresholds, dict): raise TypeError("Expected argument 'thresholds' to be a dict") + if thresholds is not None: + warnings.warn("""Define `monitor_thresholds` list with one element instead.""", DeprecationWarning) + pulumi.log.warn("thresholds is deprecated: Define `monitor_thresholds` list with one element instead.") + pulumi.set(__self__, "thresholds", thresholds) if timeout_h and not isinstance(timeout_h, int): raise TypeError("Expected argument 'timeout_h' to be a int") @@ -134,6 +148,16 @@ def message(self) -> str: def monitor_tags_filters(self) -> Optional[Sequence[str]]: return pulumi.get(self, "monitor_tags_filters") + @property + @pulumi.getter(name="monitorThresholdWindows") + def monitor_threshold_windows(self) -> 'outputs.GetMonitorMonitorThresholdWindowsResult': + return pulumi.get(self, "monitor_threshold_windows") + + @property + @pulumi.getter(name="monitorThresholds") + def monitor_thresholds(self) -> 'outputs.GetMonitorMonitorThresholdsResult': + return pulumi.get(self, "monitor_thresholds") + @property @pulumi.getter def name(self) -> str: @@ -224,6 +248,8 @@ def __await__(self): locked=self.locked, message=self.message, monitor_tags_filters=self.monitor_tags_filters, + monitor_threshold_windows=self.monitor_threshold_windows, + monitor_thresholds=self.monitor_thresholds, name=self.name, name_filter=self.name_filter, new_host_delay=self.new_host_delay, @@ -257,6 +283,58 @@ def get_monitor(monitor_tags_filters: Optional[Sequence[str]] = None, test = datadog.get_monitor(monitor_tags_filters=["foo:bar"], name_filter="My awesome monitor") ``` + ## Schema + + ### Optional + + - **id** (String) The ID of this resource. + - **monitor_tags_filter** (List of String) A list of monitor tags to limit the search. This filters on the tags set on the monitor itself. + - **name_filter** (String) A monitor name to limit the search. + - **tags_filter** (List of String) A list of tags to limit the search. This filters on the monitor scope. + + ### Read-only + + - **enable_logs_sample** (Boolean) Whether or not a list of log values which triggered the alert is included. This is only used by log monitors. + - **escalation_message** (String) Message included with a re-notification for this monitor. + - **evaluation_delay** (Number) Time (in seconds) for which evaluation is delayed. This is only used by metric monitors. + - **include_tags** (Boolean) Whether or not notifications from the monitor automatically inserts its triggering tags into the title. + - **locked** (Boolean) Whether or not changes to the monitor are restricted to the creator or admins. + - **message** (String) Message included with notifications for this monitor + - **monitor_threshold_windows** (List of Object) Mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. This is only used by anomaly monitors. (see below for nested schema) + - **monitor_thresholds** (List of Object) Alert thresholds of the monitor. (see below for nested schema) + - **name** (String) Name of the monitor + - **new_host_delay** (Number) Time (in seconds) allowing a host to boot and applications to fully start before starting the evaluation of monitor results. + - **no_data_timeframe** (Number) The number of minutes before the monitor notifies when data stops reporting. + - **notify_audit** (Boolean) Whether or not tagged users are notified on changes to the monitor. + - **notify_no_data** (Boolean) Whether or not this monitor notifies when data stops reporting. + - **query** (String) Query of the monitor. + - **renotify_interval** (Number) The number of minutes after the last notification before the monitor re-notifies on the current status. + - **require_full_window** (Boolean) Whether or not the monitor needs a full window of data before it is evaluated. + - **tags** (Set of String) List of tags associated with the monitor. + - **threshold_windows** (Map of String, Deprecated) Mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. This is only used by anomaly monitors. + - **thresholds** (Map of String, Deprecated) Alert thresholds of the monitor. + - **timeout_h** (Number) Number of hours of the monitor not reporting data before it automatically resolves from a triggered state. + - **type** (String) Type of the monitor. + + + ### Nested Schema for `monitor_threshold_windows` + + Read-only: + + - **recovery_window** (String) + - **trigger_window** (String) + + + ### Nested Schema for `monitor_thresholds` + + Read-only: + + - **critical** (String) + - **critical_recovery** (String) + - **ok** (String) + - **unknown** (String) + - **warning** (String) + - **warning_recovery** (String) """ __args__ = dict() __args__['monitorTagsFilters'] = monitor_tags_filters @@ -277,6 +355,8 @@ def get_monitor(monitor_tags_filters: Optional[Sequence[str]] = None, locked=__ret__.locked, message=__ret__.message, monitor_tags_filters=__ret__.monitor_tags_filters, + monitor_threshold_windows=__ret__.monitor_threshold_windows, + monitor_thresholds=__ret__.monitor_thresholds, name=__ret__.name, name_filter=__ret__.name_filter, new_host_delay=__ret__.new_host_delay, diff --git a/sdk/python/pulumi_datadog/logs_archive.py b/sdk/python/pulumi_datadog/logs_archive.py index 9482f542c..1ad95ba03 100644 --- a/sdk/python/pulumi_datadog/logs_archive.py +++ b/sdk/python/pulumi_datadog/logs_archive.py @@ -18,22 +18,23 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, azure: Optional[pulumi.Input[pulumi.InputType['LogsArchiveAzureArgs']]] = None, + azure_archive: Optional[pulumi.Input[pulumi.InputType['LogsArchiveAzureArchiveArgs']]] = None, gcs: Optional[pulumi.Input[pulumi.InputType['LogsArchiveGcsArgs']]] = None, + gcs_archive: Optional[pulumi.Input[pulumi.InputType['LogsArchiveGcsArchiveArgs']]] = None, include_tags: Optional[pulumi.Input[bool]] = None, name: Optional[pulumi.Input[str]] = None, query: Optional[pulumi.Input[str]] = None, rehydration_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, s3: Optional[pulumi.Input[pulumi.InputType['LogsArchiveS3Args']]] = None, + s3_archive: Optional[pulumi.Input[pulumi.InputType['LogsArchiveS3ArchiveArgs']]] = None, __props__=None, __name__=None, __opts__=None): """ - Provides a Datadog [Logs Archive API](https://docs.datadoghq.com/api/v2/logs-archives/) resource, which is used to create and manage Datadog logs archives. + Provides a Datadog Logs Archive API resource, which is used to create and manage Datadog logs archives. ## Example Usage - Create a Datadog logs archive: - ```python import pulumi import pulumi_datadog as datadog @@ -41,17 +42,69 @@ def __init__(__self__, my_s3_archive = datadog.LogsArchive("myS3Archive", name="my s3 archive", query="service:myservice", - s3=datadog.LogsArchiveS3Args( + s3_archive=datadog.LogsArchiveS3ArchiveArgs( account_id="001234567888", bucket="my-bucket", path="/path/foo", role_name="my-role-name", )) ``` + ## Schema + + ### Required + + - **name** (String, Required) Your archive name. + - **query** (String, Required) The archive query/filter. Logs matching this query are included in the archive. + + ### Optional + + - **azure** (Map of String, Optional, Deprecated) Definition of an azure archive. + - **azure_archive** (Block List, Max: 1) Definition of an azure archive. (see below for nested schema) + - **gcs** (Map of String, Optional, Deprecated) Definition of a GCS archive. + - **gcs_archive** (Block List, Max: 1) Definition of a GCS archive. (see below for nested schema) + - **id** (String, Optional) The ID of this resource. + - **include_tags** (Boolean, Optional) To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs are sent to the archive. + - **rehydration_tags** (List of String, Optional) An array of tags to add to rehydrated logs from an archive. + - **s3** (Map of String, Optional, Deprecated) Definition of an s3 archive. + - **s3_archive** (Block List, Max: 1) Definition of an s3 archive. (see below for nested schema) + + + ### Nested Schema for `azure_archive` + + Required: + + - **client_id** (String, Required) Your client id. + - **container** (String, Required) The container where the archive will be stored. + - **storage_account** (String, Required) The associated storage account. + - **tenant_id** (String, Required) Your tenant id. + + Optional: + + - **path** (String, Optional) The path where the archive will be stored. + + + ### Nested Schema for `gcs_archive` + + Required: + + - **bucket** (String, Required) Name of your GCS bucket. + - **client_email** (String, Required) Your client email. + - **path** (String, Required) Path where the archive will be stored. + - **project_id** (String, Required) Your project id. + + + ### Nested Schema for `s3_archive` + + Required: + + - **account_id** (String, Required) Your AWS account id. + - **bucket** (String, Required) Name of your s3 bucket. + - **path** (String, Required) Path where the archive will be stored. + - **role_name** (String, Required) Your AWS role name ## Import - Logs archives can be imported using their public string ID, e.g. + Import is supported using the following syntax ```sh $ pulumi import datadog:index/logsArchive:LogsArchive my_s3_archive 1Aabc2_dfQPLnXy3HlfK4hi @@ -60,13 +113,16 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[pulumi.InputType['LogsArchiveAzureArgs']] azure: Definition of an azure archive. + :param pulumi.Input[pulumi.InputType['LogsArchiveAzureArchiveArgs']] azure_archive: Definition of an azure archive. :param pulumi.Input[pulumi.InputType['LogsArchiveGcsArgs']] gcs: Definition of a GCS archive. + :param pulumi.Input[pulumi.InputType['LogsArchiveGcsArchiveArgs']] gcs_archive: Definition of a GCS archive. :param pulumi.Input[bool] include_tags: To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs are sent to the archive. :param pulumi.Input[str] name: Your archive name. :param pulumi.Input[str] query: The archive query/filter. Logs matching this query are included in the archive. :param pulumi.Input[Sequence[pulumi.Input[str]]] rehydration_tags: An array of tags to add to rehydrated logs from an archive. :param pulumi.Input[pulumi.InputType['LogsArchiveS3Args']] s3: Definition of an s3 archive. + :param pulumi.Input[pulumi.InputType['LogsArchiveS3ArchiveArgs']] s3_archive: Definition of an s3 archive. """ if __name__ is not None: warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) @@ -85,8 +141,16 @@ def __init__(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = dict() + if azure is not None and not opts.urn: + warnings.warn("""Define `azure_archive` list with one element instead.""", DeprecationWarning) + pulumi.log.warn("azure is deprecated: Define `azure_archive` list with one element instead.") __props__['azure'] = azure + __props__['azure_archive'] = azure_archive + if gcs is not None and not opts.urn: + warnings.warn("""Define `gcs_archive` list with one element instead.""", DeprecationWarning) + pulumi.log.warn("gcs is deprecated: Define `gcs_archive` list with one element instead.") __props__['gcs'] = gcs + __props__['gcs_archive'] = gcs_archive __props__['include_tags'] = include_tags if name is None and not opts.urn: raise TypeError("Missing required property 'name'") @@ -95,7 +159,11 @@ def __init__(__self__, raise TypeError("Missing required property 'query'") __props__['query'] = query __props__['rehydration_tags'] = rehydration_tags + if s3 is not None and not opts.urn: + warnings.warn("""Define `s3_archive` list with one element instead.""", DeprecationWarning) + pulumi.log.warn("s3 is deprecated: Define `s3_archive` list with one element instead.") __props__['s3'] = s3 + __props__['s3_archive'] = s3_archive super(LogsArchive, __self__).__init__( 'datadog:index/logsArchive:LogsArchive', resource_name, @@ -107,12 +175,15 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, azure: Optional[pulumi.Input[pulumi.InputType['LogsArchiveAzureArgs']]] = None, + azure_archive: Optional[pulumi.Input[pulumi.InputType['LogsArchiveAzureArchiveArgs']]] = None, gcs: Optional[pulumi.Input[pulumi.InputType['LogsArchiveGcsArgs']]] = None, + gcs_archive: Optional[pulumi.Input[pulumi.InputType['LogsArchiveGcsArchiveArgs']]] = None, include_tags: Optional[pulumi.Input[bool]] = None, name: Optional[pulumi.Input[str]] = None, query: Optional[pulumi.Input[str]] = None, rehydration_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - s3: Optional[pulumi.Input[pulumi.InputType['LogsArchiveS3Args']]] = None) -> 'LogsArchive': + s3: Optional[pulumi.Input[pulumi.InputType['LogsArchiveS3Args']]] = None, + s3_archive: Optional[pulumi.Input[pulumi.InputType['LogsArchiveS3ArchiveArgs']]] = None) -> 'LogsArchive': """ Get an existing LogsArchive resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -121,25 +192,31 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[pulumi.InputType['LogsArchiveAzureArgs']] azure: Definition of an azure archive. + :param pulumi.Input[pulumi.InputType['LogsArchiveAzureArchiveArgs']] azure_archive: Definition of an azure archive. :param pulumi.Input[pulumi.InputType['LogsArchiveGcsArgs']] gcs: Definition of a GCS archive. + :param pulumi.Input[pulumi.InputType['LogsArchiveGcsArchiveArgs']] gcs_archive: Definition of a GCS archive. :param pulumi.Input[bool] include_tags: To store the tags in the archive, set the value `true`. If it is set to `false`, the tags will be dropped when the logs are sent to the archive. :param pulumi.Input[str] name: Your archive name. :param pulumi.Input[str] query: The archive query/filter. Logs matching this query are included in the archive. :param pulumi.Input[Sequence[pulumi.Input[str]]] rehydration_tags: An array of tags to add to rehydrated logs from an archive. :param pulumi.Input[pulumi.InputType['LogsArchiveS3Args']] s3: Definition of an s3 archive. + :param pulumi.Input[pulumi.InputType['LogsArchiveS3ArchiveArgs']] s3_archive: Definition of an s3 archive. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) __props__ = dict() __props__["azure"] = azure + __props__["azure_archive"] = azure_archive __props__["gcs"] = gcs + __props__["gcs_archive"] = gcs_archive __props__["include_tags"] = include_tags __props__["name"] = name __props__["query"] = query __props__["rehydration_tags"] = rehydration_tags __props__["s3"] = s3 + __props__["s3_archive"] = s3_archive return LogsArchive(resource_name, opts=opts, __props__=__props__) @property @@ -150,6 +227,14 @@ def azure(self) -> pulumi.Output[Optional['outputs.LogsArchiveAzure']]: """ return pulumi.get(self, "azure") + @property + @pulumi.getter(name="azureArchive") + def azure_archive(self) -> pulumi.Output[Optional['outputs.LogsArchiveAzureArchive']]: + """ + Definition of an azure archive. + """ + return pulumi.get(self, "azure_archive") + @property @pulumi.getter def gcs(self) -> pulumi.Output[Optional['outputs.LogsArchiveGcs']]: @@ -158,6 +243,14 @@ def gcs(self) -> pulumi.Output[Optional['outputs.LogsArchiveGcs']]: """ return pulumi.get(self, "gcs") + @property + @pulumi.getter(name="gcsArchive") + def gcs_archive(self) -> pulumi.Output[Optional['outputs.LogsArchiveGcsArchive']]: + """ + Definition of a GCS archive. + """ + return pulumi.get(self, "gcs_archive") + @property @pulumi.getter(name="includeTags") def include_tags(self) -> pulumi.Output[Optional[bool]]: @@ -199,6 +292,14 @@ def s3(self) -> pulumi.Output[Optional['outputs.LogsArchiveS3']]: """ return pulumi.get(self, "s3") + @property + @pulumi.getter(name="s3Archive") + def s3_archive(self) -> pulumi.Output[Optional['outputs.LogsArchiveS3Archive']]: + """ + Definition of an s3 archive. + """ + return pulumi.get(self, "s3_archive") + def translate_output_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_datadog/logs_metric.py b/sdk/python/pulumi_datadog/logs_metric.py new file mode 100644 index 000000000..5b8dd1544 --- /dev/null +++ b/sdk/python/pulumi_datadog/logs_metric.py @@ -0,0 +1,204 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from . import _utilities, _tables +from . import outputs +from ._inputs import * + +__all__ = ['LogsMetric'] + + +class LogsMetric(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + compute: Optional[pulumi.Input[pulumi.InputType['LogsMetricComputeArgs']]] = None, + filter: Optional[pulumi.Input[pulumi.InputType['LogsMetricFilterArgs']]] = None, + group_bies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LogsMetricGroupByArgs']]]]] = None, + name: Optional[pulumi.Input[str]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + Resource for interacting with the logs_metric API + + ## Example Usage + + ```python + import pulumi + import pulumi_datadog as datadog + + testing_logs_metric = datadog.LogsMetric("testingLogsMetric", + compute=datadog.LogsMetricComputeArgs( + aggregation_type="distribution", + path="@duration", + ), + filter=datadog.LogsMetricFilterArgs( + query="service:test", + ), + group_bies=[datadog.LogsMetricGroupByArgs( + path="@status", + tag_name="status", + )], + name="testing.logs.metric") + ``` + ## Schema + + ### Required + + - **compute** (Block List, Min: 1, Max: 1) The compute rule to compute the log-based metric. This field can't be updated after creation. (see below for nested schema) + - **filter** (Block List, Min: 1, Max: 1) The log-based metric filter. Logs matching this filter will be aggregated in this metric. (see below for nested schema) + - **name** (String, Required) The name of the log-based metric. This field can't be updated after creation. + + ### Optional + + - **group_by** (Block List) The rules for the group by. (see below for nested schema) + - **id** (String, Optional) The ID of this resource. + + + ### Nested Schema for `compute` + + Required: + + - **aggregation_type** (String, Required) The type of aggregation to use. This field can't be updated after creation. + + Optional: + + - **path** (String, Optional) The path to the value the log-based metric will aggregate on (only used if the aggregation type is a "distribution"). This field can't be updated after creation. + + + ### Nested Schema for `filter` + + Required: + + - **query** (String, Required) The search query - following the log search syntax. + + + ### Nested Schema for `group_by` + + Required: + + - **path** (String, Required) The path to the value the log-based metric will be aggregated over. + - **tag_name** (String, Required) Name of the tag that gets created. + + ## Import + + Import is supported using the following syntax + + ```sh + $ pulumi import datadog:index/logsMetric:LogsMetric testing_logs_metric testing.logs.metric + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['LogsMetricComputeArgs']] compute: The compute rule to compute the log-based metric. This field can't be updated after creation. + :param pulumi.Input[pulumi.InputType['LogsMetricFilterArgs']] filter: The log-based metric filter. Logs matching this filter will be aggregated in this metric. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LogsMetricGroupByArgs']]]] group_bies: The rules for the group by. + :param pulumi.Input[str] name: The name of the log-based metric. This field can't be updated after creation. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + if compute is None and not opts.urn: + raise TypeError("Missing required property 'compute'") + __props__['compute'] = compute + if filter is None and not opts.urn: + raise TypeError("Missing required property 'filter'") + __props__['filter'] = filter + __props__['group_bies'] = group_bies + if name is None and not opts.urn: + raise TypeError("Missing required property 'name'") + __props__['name'] = name + super(LogsMetric, __self__).__init__( + 'datadog:index/logsMetric:LogsMetric', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + compute: Optional[pulumi.Input[pulumi.InputType['LogsMetricComputeArgs']]] = None, + filter: Optional[pulumi.Input[pulumi.InputType['LogsMetricFilterArgs']]] = None, + group_bies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LogsMetricGroupByArgs']]]]] = None, + name: Optional[pulumi.Input[str]] = None) -> 'LogsMetric': + """ + Get an existing LogsMetric resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['LogsMetricComputeArgs']] compute: The compute rule to compute the log-based metric. This field can't be updated after creation. + :param pulumi.Input[pulumi.InputType['LogsMetricFilterArgs']] filter: The log-based metric filter. Logs matching this filter will be aggregated in this metric. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LogsMetricGroupByArgs']]]] group_bies: The rules for the group by. + :param pulumi.Input[str] name: The name of the log-based metric. This field can't be updated after creation. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["compute"] = compute + __props__["filter"] = filter + __props__["group_bies"] = group_bies + __props__["name"] = name + return LogsMetric(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def compute(self) -> pulumi.Output['outputs.LogsMetricCompute']: + """ + The compute rule to compute the log-based metric. This field can't be updated after creation. + """ + return pulumi.get(self, "compute") + + @property + @pulumi.getter + def filter(self) -> pulumi.Output['outputs.LogsMetricFilter']: + """ + The log-based metric filter. Logs matching this filter will be aggregated in this metric. + """ + return pulumi.get(self, "filter") + + @property + @pulumi.getter(name="groupBies") + def group_bies(self) -> pulumi.Output[Optional[Sequence['outputs.LogsMetricGroupBy']]]: + """ + The rules for the group by. + """ + return pulumi.get(self, "group_bies") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the log-based metric. This field can't be updated after creation. + """ + return pulumi.get(self, "name") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_datadog/monitor.py b/sdk/python/pulumi_datadog/monitor.py index 9baa55441..8545ce773 100644 --- a/sdk/python/pulumi_datadog/monitor.py +++ b/sdk/python/pulumi_datadog/monitor.py @@ -24,6 +24,8 @@ def __init__(__self__, include_tags: Optional[pulumi.Input[bool]] = None, locked: Optional[pulumi.Input[bool]] = None, message: Optional[pulumi.Input[str]] = None, + monitor_threshold_windows: Optional[pulumi.Input[pulumi.InputType['MonitorMonitorThresholdWindowsArgs']]] = None, + monitor_thresholds: Optional[pulumi.Input[pulumi.InputType['MonitorMonitorThresholdsArgs']]] = None, name: Optional[pulumi.Input[str]] = None, new_host_delay: Optional[pulumi.Input[int]] = None, no_data_timeframe: Optional[pulumi.Input[int]] = None, @@ -44,72 +46,9 @@ def __init__(__self__, __name__=None, __opts__=None): """ - Provides a Datadog monitor resource. This can be used to create and manage Datadog monitors. - - ## Example Usage - - ```python - import pulumi - import pulumi_datadog as datadog - - # Create a new Datadog monitor - foo = datadog.Monitor("foo", - name="Name for monitor foo", - type="metric alert", - message="Monitor triggered. Notify: @hipchat-channel", - escalation_message="Escalation message @pagerduty", - query="avg(last_1h):avg:aws.ec2.cpu{environment:foo,host:foo} by {host} > 4", - thresholds=datadog.MonitorThresholdsArgs( - warning=2, - warning_recovery=1, - critical=4, - critical_recovery=3, - ), - notify_no_data=False, - renotify_interval=60, - notify_audit=False, - timeout_h=60, - include_tags=True, - tags=[ - "foo:bar", - "baz", - ]) - ``` - ## Silencing by Hand and by Downtimes - - There are two ways how to silence a single monitor: - - - Mute it by hand - - Create a Downtime - - Both of these actions add a new value to the `silenced` map. This can be problematic if the `silenced` attribute doesn't contain them in your application, as they would be removed on next `pulumi up` invocation. In order to prevent that from happening, you can add following to your monitor: - - ```python - import pulumi - ``` - - The above will make sure that any changes to the `silenced` attribute are ignored. - - This issue doesn't apply to multi-monitor downtimes (those that don't contain `monitor_id` ), as these don't influence contents of the `silenced` attribute. - - ## Composite Monitors - - You can compose monitors of all types in order to define more specific alert conditions (see the [doc](https://docs.datadoghq.com/monitors/monitor_types/composite/)). You just need to reuse the ID of your `Monitor` resources. You can also compose any monitor with a `SyntheticsTest` by passing the computed `monitor_id` attribute in the query. - - ```python - import pulumi - import pulumi_datadog as datadog - - bar = datadog.Monitor("bar", - message="This is a message", - name="Composite Monitor", - query=f"{datadog_monitor['foo']['id']} || {datadog_synthetics_test['foo']['monitor_id']}", - type="composite") - ``` - ## Import - Monitors can be imported using their numeric ID, e.g. console + Import is supported using the following syntax ```sh $ pulumi import datadog:index/monitor:Monitor bytes_received_localhost 2081 @@ -117,33 +56,53 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[bool] enable_logs_sample: A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + :param pulumi.Input[bool] enable_logs_sample: A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + monitors. Defaults to `false`. :param pulumi.Input[str] escalation_message: A message to include with a re-notification. Supports the `@username` notification allowed elsewhere. - :param pulumi.Input[int] evaluation_delay: Time (in seconds) to delay evaluation, as a non-negative integer. - :param pulumi.Input[bool] force_delete: A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). - :param pulumi.Input[bool] include_tags: A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. - :param pulumi.Input[bool] locked: A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + :param pulumi.Input[int] evaluation_delay: (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + data during evaluation. + :param pulumi.Input[bool] force_delete: A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + composite monitor). + :param pulumi.Input[bool] include_tags: A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + Defaults to `true`. + :param pulumi.Input[bool] locked: A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + `false`. :param pulumi.Input[str] message: A message to include with notifications for this monitor. Email notifications can be sent to specific users by using the same `@username` notation as events. + :param pulumi.Input[pulumi.InputType['MonitorMonitorThresholdWindowsArgs']] monitor_threshold_windows: A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + required for, anomaly monitors. + :param pulumi.Input[pulumi.InputType['MonitorMonitorThresholdsArgs']] monitor_thresholds: Alert thresholds of the monitor. :param pulumi.Input[str] name: Name of Datadog monitor. - :param pulumi.Input[int] new_host_delay: Time (in seconds) to allow a host to boot and - :param pulumi.Input[int] no_data_timeframe: The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. - :param pulumi.Input[bool] notify_audit: A boolean indicating whether tagged users will be notified on changes to this monitor. - :param pulumi.Input[bool] notify_no_data: A boolean indicating whether this monitor will notify when data stops reporting. Defaults - :param pulumi.Input[int] priority: Integer from 1 (high) to 5 (low) indicating alert severity. + :param pulumi.Input[int] new_host_delay: Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + results. Should be a non negative integer. Defaults to `300`. + :param pulumi.Input[int] no_data_timeframe: The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. + :param pulumi.Input[bool] notify_audit: A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. + :param pulumi.Input[bool] notify_no_data: A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. :param pulumi.Input[str] query: The monitor query to notify on. Note this is not the same query you see in the UI and the syntax is different depending on the monitor type, please see the [API Reference](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor) for details. Warning: `terraform plan` won't perform any validation of the query contents. - :param pulumi.Input[int] renotify_interval: The number of minutes after the last notification before a monitor will re-notify - :param pulumi.Input[bool] require_full_window: A boolean indicating whether this monitor needs a full window of data before it's evaluated. - :param pulumi.Input[Mapping[str, Any]] silenced: Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. - :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API - :param pulumi.Input[pulumi.InputType['MonitorThresholdWindowsArgs']] threshold_windows: A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are required for, anomaly monitors. - :param pulumi.Input[int] timeout_h: The number of hours of the monitor not reporting data before it will automatically resolve + :param pulumi.Input[int] renotify_interval: The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + re-notify if it's not resolved. + :param pulumi.Input[bool] require_full_window: A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + times` and `in total` aggregation. `false` otherwise. + :param pulumi.Input[Mapping[str, Any]] silenced: Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + removed in the next major version of the Terraform Provider. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + :param pulumi.Input[pulumi.InputType['MonitorThresholdWindowsArgs']] threshold_windows: A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + required for, anomaly monitors. + :param pulumi.Input[pulumi.InputType['MonitorThresholdsArgs']] thresholds: Alert thresholds of the monitor. + :param pulumi.Input[int] timeout_h: The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + Defaults to `false`. :param pulumi.Input[str] type: The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - are below. Note: The monitor type cannot be changed after a monitor is created. - :param pulumi.Input[bool] validate: If set to false, skip the validation call done during `plan` . + Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + cannot be changed after a monitor is created. + :param pulumi.Input[bool] validate: If set to `false`, skip the validation call done during plan. """ if __name__ is not None: warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) @@ -171,6 +130,8 @@ def __init__(__self__, if message is None and not opts.urn: raise TypeError("Missing required property 'message'") __props__['message'] = message + __props__['monitor_threshold_windows'] = monitor_threshold_windows + __props__['monitor_thresholds'] = monitor_thresholds if name is None and not opts.urn: raise TypeError("Missing required property 'name'") __props__['name'] = name @@ -189,7 +150,13 @@ def __init__(__self__, pulumi.log.warn("silenced is deprecated: use Downtime Resource instead") __props__['silenced'] = silenced __props__['tags'] = tags + if threshold_windows is not None and not opts.urn: + warnings.warn("""Define `monitor_threshold_windows` list with one element instead.""", DeprecationWarning) + pulumi.log.warn("threshold_windows is deprecated: Define `monitor_threshold_windows` list with one element instead.") __props__['threshold_windows'] = threshold_windows + if thresholds is not None and not opts.urn: + warnings.warn("""Define `monitor_thresholds` list with one element instead.""", DeprecationWarning) + pulumi.log.warn("thresholds is deprecated: Define `monitor_thresholds` list with one element instead.") __props__['thresholds'] = thresholds __props__['timeout_h'] = timeout_h if type is None and not opts.urn: @@ -213,6 +180,8 @@ def get(resource_name: str, include_tags: Optional[pulumi.Input[bool]] = None, locked: Optional[pulumi.Input[bool]] = None, message: Optional[pulumi.Input[str]] = None, + monitor_threshold_windows: Optional[pulumi.Input[pulumi.InputType['MonitorMonitorThresholdWindowsArgs']]] = None, + monitor_thresholds: Optional[pulumi.Input[pulumi.InputType['MonitorMonitorThresholdsArgs']]] = None, name: Optional[pulumi.Input[str]] = None, new_host_delay: Optional[pulumi.Input[int]] = None, no_data_timeframe: Optional[pulumi.Input[int]] = None, @@ -236,33 +205,53 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[bool] enable_logs_sample: A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + :param pulumi.Input[bool] enable_logs_sample: A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + monitors. Defaults to `false`. :param pulumi.Input[str] escalation_message: A message to include with a re-notification. Supports the `@username` notification allowed elsewhere. - :param pulumi.Input[int] evaluation_delay: Time (in seconds) to delay evaluation, as a non-negative integer. - :param pulumi.Input[bool] force_delete: A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). - :param pulumi.Input[bool] include_tags: A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. - :param pulumi.Input[bool] locked: A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + :param pulumi.Input[int] evaluation_delay: (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + data during evaluation. + :param pulumi.Input[bool] force_delete: A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + composite monitor). + :param pulumi.Input[bool] include_tags: A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + Defaults to `true`. + :param pulumi.Input[bool] locked: A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + `false`. :param pulumi.Input[str] message: A message to include with notifications for this monitor. Email notifications can be sent to specific users by using the same `@username` notation as events. + :param pulumi.Input[pulumi.InputType['MonitorMonitorThresholdWindowsArgs']] monitor_threshold_windows: A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + required for, anomaly monitors. + :param pulumi.Input[pulumi.InputType['MonitorMonitorThresholdsArgs']] monitor_thresholds: Alert thresholds of the monitor. :param pulumi.Input[str] name: Name of Datadog monitor. - :param pulumi.Input[int] new_host_delay: Time (in seconds) to allow a host to boot and - :param pulumi.Input[int] no_data_timeframe: The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. - :param pulumi.Input[bool] notify_audit: A boolean indicating whether tagged users will be notified on changes to this monitor. - :param pulumi.Input[bool] notify_no_data: A boolean indicating whether this monitor will notify when data stops reporting. Defaults - :param pulumi.Input[int] priority: Integer from 1 (high) to 5 (low) indicating alert severity. + :param pulumi.Input[int] new_host_delay: Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + results. Should be a non negative integer. Defaults to `300`. + :param pulumi.Input[int] no_data_timeframe: The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. + :param pulumi.Input[bool] notify_audit: A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. + :param pulumi.Input[bool] notify_no_data: A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. :param pulumi.Input[str] query: The monitor query to notify on. Note this is not the same query you see in the UI and the syntax is different depending on the monitor type, please see the [API Reference](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor) for details. Warning: `terraform plan` won't perform any validation of the query contents. - :param pulumi.Input[int] renotify_interval: The number of minutes after the last notification before a monitor will re-notify - :param pulumi.Input[bool] require_full_window: A boolean indicating whether this monitor needs a full window of data before it's evaluated. - :param pulumi.Input[Mapping[str, Any]] silenced: Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. - :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API - :param pulumi.Input[pulumi.InputType['MonitorThresholdWindowsArgs']] threshold_windows: A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are required for, anomaly monitors. - :param pulumi.Input[int] timeout_h: The number of hours of the monitor not reporting data before it will automatically resolve + :param pulumi.Input[int] renotify_interval: The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + re-notify if it's not resolved. + :param pulumi.Input[bool] require_full_window: A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + times` and `in total` aggregation. `false` otherwise. + :param pulumi.Input[Mapping[str, Any]] silenced: Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + removed in the next major version of the Terraform Provider. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + :param pulumi.Input[pulumi.InputType['MonitorThresholdWindowsArgs']] threshold_windows: A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + required for, anomaly monitors. + :param pulumi.Input[pulumi.InputType['MonitorThresholdsArgs']] thresholds: Alert thresholds of the monitor. + :param pulumi.Input[int] timeout_h: The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + Defaults to `false`. :param pulumi.Input[str] type: The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - are below. Note: The monitor type cannot be changed after a monitor is created. - :param pulumi.Input[bool] validate: If set to false, skip the validation call done during `plan` . + Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + cannot be changed after a monitor is created. + :param pulumi.Input[bool] validate: If set to `false`, skip the validation call done during plan. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -275,6 +264,8 @@ def get(resource_name: str, __props__["include_tags"] = include_tags __props__["locked"] = locked __props__["message"] = message + __props__["monitor_threshold_windows"] = monitor_threshold_windows + __props__["monitor_thresholds"] = monitor_thresholds __props__["name"] = name __props__["new_host_delay"] = new_host_delay __props__["no_data_timeframe"] = no_data_timeframe @@ -297,7 +288,8 @@ def get(resource_name: str, @pulumi.getter(name="enableLogsSample") def enable_logs_sample(self) -> pulumi.Output[Optional[bool]]: """ - A boolean indicating whether or not to include a list of log values which triggered the alert. Defaults to false. This is only used by log monitors. + A boolean indicating whether or not to include a list of log values which triggered the alert. This is only used by log + monitors. Defaults to `false`. """ return pulumi.get(self, "enable_logs_sample") @@ -313,7 +305,10 @@ def escalation_message(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="evaluationDelay") def evaluation_delay(self) -> pulumi.Output[int]: """ - Time (in seconds) to delay evaluation, as a non-negative integer. + (Only applies to metric alert) Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the + value is set to `300` (5min), the `timeframe` is set to `last_5m` and the time is 7:00, the monitor will evaluate data + from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor will always have + data during evaluation. """ return pulumi.get(self, "evaluation_delay") @@ -321,7 +316,8 @@ def evaluation_delay(self) -> pulumi.Output[int]: @pulumi.getter(name="forceDelete") def force_delete(self) -> pulumi.Output[Optional[bool]]: """ - A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, composite monitor). + A boolean indicating whether this monitor can be deleted even if it’s referenced by other resources (e.g. SLO, + composite monitor). """ return pulumi.get(self, "force_delete") @@ -329,7 +325,8 @@ def force_delete(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="includeTags") def include_tags(self) -> pulumi.Output[Optional[bool]]: """ - A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. Defaults to true. + A boolean indicating whether notifications from this monitor automatically insert its triggering tags into the title. + Defaults to `true`. """ return pulumi.get(self, "include_tags") @@ -337,7 +334,8 @@ def include_tags(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter def locked(self) -> pulumi.Output[Optional[bool]]: """ - A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to False. + A boolean indicating whether changes to to this monitor should be restricted to the creator or admins. Defaults to + `false`. """ return pulumi.get(self, "locked") @@ -350,6 +348,23 @@ def message(self) -> pulumi.Output[str]: """ return pulumi.get(self, "message") + @property + @pulumi.getter(name="monitorThresholdWindows") + def monitor_threshold_windows(self) -> pulumi.Output[Optional['outputs.MonitorMonitorThresholdWindows']]: + """ + A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are + required for, anomaly monitors. + """ + return pulumi.get(self, "monitor_threshold_windows") + + @property + @pulumi.getter(name="monitorThresholds") + def monitor_thresholds(self) -> pulumi.Output[Optional['outputs.MonitorMonitorThresholds']]: + """ + Alert thresholds of the monitor. + """ + return pulumi.get(self, "monitor_thresholds") + @property @pulumi.getter def name(self) -> pulumi.Output[str]: @@ -362,7 +377,8 @@ def name(self) -> pulumi.Output[str]: @pulumi.getter(name="newHostDelay") def new_host_delay(self) -> pulumi.Output[Optional[int]]: """ - Time (in seconds) to allow a host to boot and + Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor + results. Should be a non negative integer. Defaults to `300`. """ return pulumi.get(self, "new_host_delay") @@ -370,7 +386,8 @@ def new_host_delay(self) -> pulumi.Output[Optional[int]]: @pulumi.getter(name="noDataTimeframe") def no_data_timeframe(self) -> pulumi.Output[Optional[int]]: """ - The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. + The number of minutes before a monitor will notify when data stops reporting. Provider defaults to 10 minutes. We + recommend at least 2x the monitor timeframe for metric alerts or 2 minutes for service checks. """ return pulumi.get(self, "no_data_timeframe") @@ -378,7 +395,7 @@ def no_data_timeframe(self) -> pulumi.Output[Optional[int]]: @pulumi.getter(name="notifyAudit") def notify_audit(self) -> pulumi.Output[Optional[bool]]: """ - A boolean indicating whether tagged users will be notified on changes to this monitor. + A boolean indicating whether tagged users will be notified on changes to this monitor. Defaults to `false`. """ return pulumi.get(self, "notify_audit") @@ -386,16 +403,13 @@ def notify_audit(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="notifyNoData") def notify_no_data(self) -> pulumi.Output[Optional[bool]]: """ - A boolean indicating whether this monitor will notify when data stops reporting. Defaults + A boolean indicating whether this monitor will notify when data stops reporting. Defaults to false. """ return pulumi.get(self, "notify_no_data") @property @pulumi.getter def priority(self) -> pulumi.Output[Optional[int]]: - """ - Integer from 1 (high) to 5 (low) indicating alert severity. - """ return pulumi.get(self, "priority") @property @@ -412,7 +426,8 @@ def query(self) -> pulumi.Output[str]: @pulumi.getter(name="renotifyInterval") def renotify_interval(self) -> pulumi.Output[Optional[int]]: """ - The number of minutes after the last notification before a monitor will re-notify + The number of minutes after the last notification before a monitor will re-notify on the current status. It will only + re-notify if it's not resolved. """ return pulumi.get(self, "renotify_interval") @@ -420,7 +435,9 @@ def renotify_interval(self) -> pulumi.Output[Optional[int]]: @pulumi.getter(name="requireFullWindow") def require_full_window(self) -> pulumi.Output[Optional[bool]]: """ - A boolean indicating whether this monitor needs a full window of data before it's evaluated. + A boolean indicating whether this monitor needs a full window of data before it's evaluated. We highly recommend you set + this to `false` for s metrics, otherwise some evaluations will be skipped. Default: `true` for `on average`, `at all + times` and `in total` aggregation. `false` otherwise. """ return pulumi.get(self, "require_full_window") @@ -428,7 +445,9 @@ def require_full_window(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter def silenced(self) -> pulumi.Output[Optional[Mapping[str, Any]]]: """ - Each scope will be muted until the given POSIX timestamp or forever if the value is 0. Use `-1` if you want to unmute the scope. **Deprecated** The `silenced` parameter is being deprecated in favor of the downtime resource. This will be removed in the next major version of the provider. + Each scope will be muted until the given POSIX timestamp or forever if the value is `0`. Use `-1` if you want to unmute + the scope. Deprecated: the silenced parameter is being deprecated in favor of the downtime resource. This will be + removed in the next major version of the Terraform Provider. """ return pulumi.get(self, "silenced") @@ -436,7 +455,8 @@ def silenced(self) -> pulumi.Output[Optional[Mapping[str, Any]]]: @pulumi.getter def tags(self) -> pulumi.Output[Optional[Sequence[str]]]: """ - A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors page of the UI. Note: it's not currently possible to filter by these tags when querying via the API + A list of tags to associate with your monitor. This can help you categorize and filter monitors in the manage monitors + page of the UI. Note: it's not currently possible to filter by these tags when querying via the API """ return pulumi.get(self, "tags") @@ -444,20 +464,25 @@ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]: @pulumi.getter(name="thresholdWindows") def threshold_windows(self) -> pulumi.Output[Optional['outputs.MonitorThresholdWindows']]: """ - A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m` . Can only be used for, and are required for, anomaly monitors. + A mapping containing `recovery_window` and `trigger_window` values, e.g. `last_15m`. Can only be used for, and are + required for, anomaly monitors. """ return pulumi.get(self, "threshold_windows") @property @pulumi.getter def thresholds(self) -> pulumi.Output[Optional['outputs.MonitorThresholds']]: + """ + Alert thresholds of the monitor. + """ return pulumi.get(self, "thresholds") @property @pulumi.getter(name="timeoutH") def timeout_h(self) -> pulumi.Output[Optional[int]]: """ - The number of hours of the monitor not reporting data before it will automatically resolve + The number of hours of the monitor not reporting data before it will automatically resolve from a triggered state. + Defaults to `false`. """ return pulumi.get(self, "timeout_h") @@ -466,8 +491,8 @@ def timeout_h(self) -> pulumi.Output[Optional[int]]: def type(self) -> pulumi.Output[str]: """ The type of the monitor. The mapping from these types to the types found in the Datadog Web UI can be found in the - Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). The available options - are below. Note: The monitor type cannot be changed after a monitor is created. + Datadog API [documentation page](https://docs.datadoghq.com/api/v1/monitors/#create-a-monitor). Note: The monitor type + cannot be changed after a monitor is created. """ return pulumi.get(self, "type") @@ -475,7 +500,7 @@ def type(self) -> pulumi.Output[str]: @pulumi.getter def validate(self) -> pulumi.Output[Optional[bool]]: """ - If set to false, skip the validation call done during `plan` . + If set to `false`, skip the validation call done during plan. """ return pulumi.get(self, "validate") diff --git a/sdk/python/pulumi_datadog/outputs.py b/sdk/python/pulumi_datadog/outputs.py index 2e86c8fb9..a1dd42151 100644 --- a/sdk/python/pulumi_datadog/outputs.py +++ b/sdk/python/pulumi_datadog/outputs.py @@ -741,8 +741,11 @@ 'DashboardWidgetTraceServiceDefinitionTime', 'DowntimeRecurrence', 'LogsArchiveAzure', + 'LogsArchiveAzureArchive', 'LogsArchiveGcs', + 'LogsArchiveGcsArchive', 'LogsArchiveS3', + 'LogsArchiveS3Archive', 'LogsCustomPipelineFilter', 'LogsCustomPipelineProcessor', 'LogsCustomPipelineProcessorArithmeticProcessor', @@ -785,6 +788,11 @@ 'LogsIndexExclusionFilter', 'LogsIndexExclusionFilterFilter', 'LogsIndexFilter', + 'LogsMetricCompute', + 'LogsMetricFilter', + 'LogsMetricGroupBy', + 'MonitorMonitorThresholdWindows', + 'MonitorMonitorThresholds', 'MonitorThresholdWindows', 'MonitorThresholds', 'RolePermission', @@ -812,6 +820,8 @@ 'SecurityMonitoringRuleQuery', 'ServiceLevelObjectiveQuery', 'ServiceLevelObjectiveThreshold', + 'SyntheticsGlobalVariableParseTestOptions', + 'SyntheticsGlobalVariableParseTestOptionsParser', 'SyntheticsTestBrowserVariable', 'SyntheticsTestConfigVariable', 'SyntheticsTestOptions', @@ -841,6 +851,8 @@ 'TimeBoardGraphRequestLogQuerySearch', 'TimeBoardGraphRequestProcessQuery', 'TimeBoardTemplateVariable', + 'GetMonitorMonitorThresholdWindowsResult', + 'GetMonitorMonitorThresholdsResult', 'GetMonitorThresholdWindowsResult', 'GetMonitorThresholdsResult', 'GetSecurityMonitoringRulesRuleResult', @@ -960,6 +972,7 @@ def __init__(__self__, *, group_definition: Optional['outputs.DashboardWidgetGroupDefinition'] = None, heatmap_definition: Optional['outputs.DashboardWidgetHeatmapDefinition'] = None, hostmap_definition: Optional['outputs.DashboardWidgetHostmapDefinition'] = None, + id: Optional[int] = None, iframe_definition: Optional['outputs.DashboardWidgetIframeDefinition'] = None, image_definition: Optional['outputs.DashboardWidgetImageDefinition'] = None, layout: Optional['outputs.DashboardWidgetLayout'] = None, @@ -996,6 +1009,8 @@ def __init__(__self__, *, pulumi.set(__self__, "heatmap_definition", heatmap_definition) if hostmap_definition is not None: pulumi.set(__self__, "hostmap_definition", hostmap_definition) + if id is not None: + pulumi.set(__self__, "id", id) if iframe_definition is not None: pulumi.set(__self__, "iframe_definition", iframe_definition) if image_definition is not None: @@ -1080,6 +1095,11 @@ def heatmap_definition(self) -> Optional['outputs.DashboardWidgetHeatmapDefiniti def hostmap_definition(self) -> Optional['outputs.DashboardWidgetHostmapDefinition']: return pulumi.get(self, "hostmap_definition") + @property + @pulumi.getter + def id(self) -> Optional[int]: + return pulumi.get(self, "id") + @property @pulumi.getter(name="iframeDefinition") def iframe_definition(self) -> Optional['outputs.DashboardWidgetIframeDefinition']: @@ -3537,6 +3557,7 @@ def __init__(__self__, *, free_text_definition: Optional['outputs.DashboardWidgetGroupDefinitionWidgetFreeTextDefinition'] = None, heatmap_definition: Optional['outputs.DashboardWidgetGroupDefinitionWidgetHeatmapDefinition'] = None, hostmap_definition: Optional['outputs.DashboardWidgetGroupDefinitionWidgetHostmapDefinition'] = None, + id: Optional[int] = None, iframe_definition: Optional['outputs.DashboardWidgetGroupDefinitionWidgetIframeDefinition'] = None, image_definition: Optional['outputs.DashboardWidgetGroupDefinitionWidgetImageDefinition'] = None, layout: Optional['outputs.DashboardWidgetGroupDefinitionWidgetLayout'] = None, @@ -3571,6 +3592,8 @@ def __init__(__self__, *, pulumi.set(__self__, "heatmap_definition", heatmap_definition) if hostmap_definition is not None: pulumi.set(__self__, "hostmap_definition", hostmap_definition) + if id is not None: + pulumi.set(__self__, "id", id) if iframe_definition is not None: pulumi.set(__self__, "iframe_definition", iframe_definition) if image_definition is not None: @@ -3650,6 +3673,11 @@ def heatmap_definition(self) -> Optional['outputs.DashboardWidgetGroupDefinition def hostmap_definition(self) -> Optional['outputs.DashboardWidgetGroupDefinitionWidgetHostmapDefinition']: return pulumi.get(self, "hostmap_definition") + @property + @pulumi.getter + def id(self) -> Optional[int]: + return pulumi.get(self, "id") + @property @pulumi.getter(name="iframeDefinition") def iframe_definition(self) -> Optional['outputs.DashboardWidgetGroupDefinitionWidgetIframeDefinition']: @@ -26585,6 +26613,50 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class LogsArchiveAzureArchive(dict): + def __init__(__self__, *, + client_id: str, + container: str, + storage_account: str, + tenant_id: str, + path: Optional[str] = None): + pulumi.set(__self__, "client_id", client_id) + pulumi.set(__self__, "container", container) + pulumi.set(__self__, "storage_account", storage_account) + pulumi.set(__self__, "tenant_id", tenant_id) + if path is not None: + pulumi.set(__self__, "path", path) + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> str: + return pulumi.get(self, "client_id") + + @property + @pulumi.getter + def container(self) -> str: + return pulumi.get(self, "container") + + @property + @pulumi.getter(name="storageAccount") + def storage_account(self) -> str: + return pulumi.get(self, "storage_account") + + @property + @pulumi.getter(name="tenantId") + def tenant_id(self) -> str: + return pulumi.get(self, "tenant_id") + + @property + @pulumi.getter + def path(self) -> Optional[str]: + return pulumi.get(self, "path") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class LogsArchiveGcs(dict): def __init__(__self__, *, @@ -26622,25 +26694,16 @@ def _translate_property(self, prop): @pulumi.output_type -class LogsArchiveS3(dict): +class LogsArchiveGcsArchive(dict): def __init__(__self__, *, - account_id: str, bucket: str, client_email: str, path: str, - project_id: str, - role_name: str): - pulumi.set(__self__, "account_id", account_id) + project_id: str): pulumi.set(__self__, "bucket", bucket) pulumi.set(__self__, "client_email", client_email) pulumi.set(__self__, "path", path) pulumi.set(__self__, "project_id", project_id) - pulumi.set(__self__, "role_name", role_name) - - @property - @pulumi.getter(name="accountId") - def account_id(self) -> str: - return pulumi.get(self, "account_id") @property @pulumi.getter @@ -26662,6 +26725,73 @@ def path(self) -> str: def project_id(self) -> str: return pulumi.get(self, "project_id") + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class LogsArchiveS3(dict): + def __init__(__self__, *, + account_id: str, + bucket: str, + path: str, + role_name: str): + pulumi.set(__self__, "account_id", account_id) + pulumi.set(__self__, "bucket", bucket) + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "role_name", role_name) + + @property + @pulumi.getter(name="accountId") + def account_id(self) -> str: + return pulumi.get(self, "account_id") + + @property + @pulumi.getter + def bucket(self) -> str: + return pulumi.get(self, "bucket") + + @property + @pulumi.getter + def path(self) -> str: + return pulumi.get(self, "path") + + @property + @pulumi.getter(name="roleName") + def role_name(self) -> str: + return pulumi.get(self, "role_name") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class LogsArchiveS3Archive(dict): + def __init__(__self__, *, + account_id: str, + bucket: str, + path: str, + role_name: str): + pulumi.set(__self__, "account_id", account_id) + pulumi.set(__self__, "bucket", bucket) + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "role_name", role_name) + + @property + @pulumi.getter(name="accountId") + def account_id(self) -> str: + return pulumi.get(self, "account_id") + + @property + @pulumi.getter + def bucket(self) -> str: + return pulumi.get(self, "bucket") + + @property + @pulumi.getter + def path(self) -> str: + return pulumi.get(self, "path") + @property @pulumi.getter(name="roleName") def role_name(self) -> str: @@ -28356,15 +28486,151 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class LogsMetricCompute(dict): + def __init__(__self__, *, + aggregation_type: str, + path: Optional[str] = None): + pulumi.set(__self__, "aggregation_type", aggregation_type) + if path is not None: + pulumi.set(__self__, "path", path) + + @property + @pulumi.getter(name="aggregationType") + def aggregation_type(self) -> str: + return pulumi.get(self, "aggregation_type") + + @property + @pulumi.getter + def path(self) -> Optional[str]: + return pulumi.get(self, "path") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class LogsMetricFilter(dict): + def __init__(__self__, *, + query: str): + pulumi.set(__self__, "query", query) + + @property + @pulumi.getter + def query(self) -> str: + return pulumi.get(self, "query") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class LogsMetricGroupBy(dict): + def __init__(__self__, *, + path: str, + tag_name: str): + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "tag_name", tag_name) + + @property + @pulumi.getter + def path(self) -> str: + return pulumi.get(self, "path") + + @property + @pulumi.getter(name="tagName") + def tag_name(self) -> str: + return pulumi.get(self, "tag_name") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class MonitorMonitorThresholdWindows(dict): + def __init__(__self__, *, + recovery_window: Optional[str] = None, + trigger_window: Optional[str] = None): + if recovery_window is not None: + pulumi.set(__self__, "recovery_window", recovery_window) + if trigger_window is not None: + pulumi.set(__self__, "trigger_window", trigger_window) + + @property + @pulumi.getter(name="recoveryWindow") + def recovery_window(self) -> Optional[str]: + return pulumi.get(self, "recovery_window") + + @property + @pulumi.getter(name="triggerWindow") + def trigger_window(self) -> Optional[str]: + return pulumi.get(self, "trigger_window") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class MonitorMonitorThresholds(dict): + def __init__(__self__, *, + critical: Optional[str] = None, + critical_recovery: Optional[str] = None, + ok: Optional[str] = None, + unknown: Optional[str] = None, + warning: Optional[str] = None, + warning_recovery: Optional[str] = None): + if critical is not None: + pulumi.set(__self__, "critical", critical) + if critical_recovery is not None: + pulumi.set(__self__, "critical_recovery", critical_recovery) + if ok is not None: + pulumi.set(__self__, "ok", ok) + if unknown is not None: + pulumi.set(__self__, "unknown", unknown) + if warning is not None: + pulumi.set(__self__, "warning", warning) + if warning_recovery is not None: + pulumi.set(__self__, "warning_recovery", warning_recovery) + + @property + @pulumi.getter + def critical(self) -> Optional[str]: + return pulumi.get(self, "critical") + + @property + @pulumi.getter(name="criticalRecovery") + def critical_recovery(self) -> Optional[str]: + return pulumi.get(self, "critical_recovery") + + @property + @pulumi.getter + def ok(self) -> Optional[str]: + return pulumi.get(self, "ok") + + @property + @pulumi.getter + def unknown(self) -> Optional[str]: + return pulumi.get(self, "unknown") + + @property + @pulumi.getter + def warning(self) -> Optional[str]: + return pulumi.get(self, "warning") + + @property + @pulumi.getter(name="warningRecovery") + def warning_recovery(self) -> Optional[str]: + return pulumi.get(self, "warning_recovery") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class MonitorThresholdWindows(dict): def __init__(__self__, *, recovery_window: Optional[str] = None, trigger_window: Optional[str] = None): - """ - :param str recovery_window: describes how long an anomalous metric must be normal before the alert recovers. - :param str trigger_window: describes how long a metric must be anomalous before an alert triggers. - """ if recovery_window is not None: pulumi.set(__self__, "recovery_window", recovery_window) if trigger_window is not None: @@ -28373,17 +28639,11 @@ def __init__(__self__, *, @property @pulumi.getter(name="recoveryWindow") def recovery_window(self) -> Optional[str]: - """ - describes how long an anomalous metric must be normal before the alert recovers. - """ return pulumi.get(self, "recovery_window") @property @pulumi.getter(name="triggerWindow") def trigger_window(self) -> Optional[str]: - """ - describes how long a metric must be anomalous before an alert triggers. - """ return pulumi.get(self, "trigger_window") def _translate_property(self, prop): @@ -29967,6 +30227,59 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class SyntheticsGlobalVariableParseTestOptions(dict): + def __init__(__self__, *, + parser: 'outputs.SyntheticsGlobalVariableParseTestOptionsParser', + type: str, + field: Optional[str] = None): + pulumi.set(__self__, "parser", parser) + pulumi.set(__self__, "type", type) + if field is not None: + pulumi.set(__self__, "field", field) + + @property + @pulumi.getter + def parser(self) -> 'outputs.SyntheticsGlobalVariableParseTestOptionsParser': + return pulumi.get(self, "parser") + + @property + @pulumi.getter + def type(self) -> str: + return pulumi.get(self, "type") + + @property + @pulumi.getter + def field(self) -> Optional[str]: + return pulumi.get(self, "field") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class SyntheticsGlobalVariableParseTestOptionsParser(dict): + def __init__(__self__, *, + type: str, + value: Optional[str] = None): + pulumi.set(__self__, "type", type) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def type(self) -> str: + return pulumi.get(self, "type") + + @property + @pulumi.getter + def value(self) -> Optional[str]: + return pulumi.get(self, "value") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class SyntheticsTestBrowserVariable(dict): def __init__(__self__, *, @@ -31185,6 +31498,72 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class GetMonitorMonitorThresholdWindowsResult(dict): + def __init__(__self__, *, + recovery_window: str, + trigger_window: str): + pulumi.set(__self__, "recovery_window", recovery_window) + pulumi.set(__self__, "trigger_window", trigger_window) + + @property + @pulumi.getter(name="recoveryWindow") + def recovery_window(self) -> str: + return pulumi.get(self, "recovery_window") + + @property + @pulumi.getter(name="triggerWindow") + def trigger_window(self) -> str: + return pulumi.get(self, "trigger_window") + + +@pulumi.output_type +class GetMonitorMonitorThresholdsResult(dict): + def __init__(__self__, *, + critical: str, + critical_recovery: str, + ok: str, + unknown: str, + warning: str, + warning_recovery: str): + pulumi.set(__self__, "critical", critical) + pulumi.set(__self__, "critical_recovery", critical_recovery) + pulumi.set(__self__, "ok", ok) + pulumi.set(__self__, "unknown", unknown) + pulumi.set(__self__, "warning", warning) + pulumi.set(__self__, "warning_recovery", warning_recovery) + + @property + @pulumi.getter + def critical(self) -> str: + return pulumi.get(self, "critical") + + @property + @pulumi.getter(name="criticalRecovery") + def critical_recovery(self) -> str: + return pulumi.get(self, "critical_recovery") + + @property + @pulumi.getter + def ok(self) -> str: + return pulumi.get(self, "ok") + + @property + @pulumi.getter + def unknown(self) -> str: + return pulumi.get(self, "unknown") + + @property + @pulumi.getter + def warning(self) -> str: + return pulumi.get(self, "warning") + + @property + @pulumi.getter(name="warningRecovery") + def warning_recovery(self) -> str: + return pulumi.get(self, "warning_recovery") + + @pulumi.output_type class GetMonitorThresholdWindowsResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_datadog/provider.py b/sdk/python/pulumi_datadog/provider.py index ecfdff3fb..7f625892a 100644 --- a/sdk/python/pulumi_datadog/provider.py +++ b/sdk/python/pulumi_datadog/provider.py @@ -31,12 +31,12 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] api_key: (Required unless validate is false) Datadog API key. This can also be set via the DD_API_KEY environment variable. - :param pulumi.Input[str] api_url: The API Url. This can be also be set via the DD_HOST environment variable. Note that this URL must not end with the - /api/ path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And - if you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. + :param pulumi.Input[str] api_url: The API Url. This can also be set via the DD_HOST environment variable. Note that this URL must not end with the /api/ + path. For example, https://api.datadoghq.com/ is a correct value, while https://api.datadoghq.com/api/ is not. And if + you're working with "EU" version of Datadog, use https://api.datadoghq.eu/. :param pulumi.Input[str] app_key: (Required unless validate is false) Datadog APP key. This can also be set via the DD_APP_KEY environment variable. :param pulumi.Input[bool] validate: Enables validation of the provided API and APP keys during provider initialization. Default is true. When false, api_key - and app_keywon't be checked. + and app_key won't be checked. """ if __name__ is not None: warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) diff --git a/sdk/python/pulumi_datadog/screen_board.py b/sdk/python/pulumi_datadog/screen_board.py index 023db3cbb..16a615dcd 100644 --- a/sdk/python/pulumi_datadog/screen_board.py +++ b/sdk/python/pulumi_datadog/screen_board.py @@ -105,15 +105,15 @@ def __init__(__self__, search=datadog.ScreenBoardWidgetTileDefRequestLogQuerySearchArgs( query="status:info", ), - group_bies=[datadog.ScreenBoardWidgetTileDefRequestLogQueryGroupByArgs( - facet="host", - limit=10, - sort=datadog.ScreenBoardWidgetTileDefRequestLogQueryGroupBySortArgs( - aggregation="avg", - order="desc", - facet="@duration", - ), - )], + group_bies=[{ + "facet": "host", + "limit": 10, + "sort": { + "aggregation": "avg", + "order": "desc", + "facet": "@duration", + }, + }], ), type="area", ), @@ -128,15 +128,15 @@ def __init__(__self__, search=datadog.ScreenBoardWidgetTileDefRequestApmQuerySearchArgs( query="type:web", ), - group_bies=[datadog.ScreenBoardWidgetTileDefRequestApmQueryGroupByArgs( - facet="resource_name", - limit=50, - sort=datadog.ScreenBoardWidgetTileDefRequestApmQueryGroupBySortArgs( - aggregation="avg", - order="desc", - facet="@string_query.interval", - ), - )], + group_bies=[{ + "facet": "resource_name", + "limit": 50, + "sort": { + "aggregation": "avg", + "order": "desc", + "facet": "@string_query.interval", + }, + }], ), type="bars", ), diff --git a/sdk/python/pulumi_datadog/synthetics_global_variable.py b/sdk/python/pulumi_datadog/synthetics_global_variable.py index 8debfcaf2..6877fcfac 100644 --- a/sdk/python/pulumi_datadog/synthetics_global_variable.py +++ b/sdk/python/pulumi_datadog/synthetics_global_variable.py @@ -7,6 +7,8 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union from . import _utilities, _tables +from . import outputs +from ._inputs import * __all__ = ['SyntheticsGlobalVariable'] @@ -17,6 +19,8 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, + parse_test_id: Optional[pulumi.Input[str]] = None, + parse_test_options: Optional[pulumi.Input[pulumi.InputType['SyntheticsGlobalVariableParseTestOptionsArgs']]] = None, secure: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, value: Optional[pulumi.Input[str]] = None, @@ -54,6 +58,8 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: Description of the global variable. :param pulumi.Input[str] name: Synthetics global variable name. + :param pulumi.Input[str] parse_test_id: Id of the Synthetics test to use for a variable from test. + :param pulumi.Input[pulumi.InputType['SyntheticsGlobalVariableParseTestOptionsArgs']] parse_test_options: ID of the Synthetics test to use a source of the global variable value. :param pulumi.Input[bool] secure: Sets the variable as secure. Defaults to `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to associate with your synthetics global variable. :param pulumi.Input[str] value: The value of the global variable. @@ -79,6 +85,8 @@ def __init__(__self__, if name is None and not opts.urn: raise TypeError("Missing required property 'name'") __props__['name'] = name + __props__['parse_test_id'] = parse_test_id + __props__['parse_test_options'] = parse_test_options __props__['secure'] = secure __props__['tags'] = tags if value is None and not opts.urn: @@ -96,6 +104,8 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, + parse_test_id: Optional[pulumi.Input[str]] = None, + parse_test_options: Optional[pulumi.Input[pulumi.InputType['SyntheticsGlobalVariableParseTestOptionsArgs']]] = None, secure: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, value: Optional[pulumi.Input[str]] = None) -> 'SyntheticsGlobalVariable': @@ -108,6 +118,8 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: Description of the global variable. :param pulumi.Input[str] name: Synthetics global variable name. + :param pulumi.Input[str] parse_test_id: Id of the Synthetics test to use for a variable from test. + :param pulumi.Input[pulumi.InputType['SyntheticsGlobalVariableParseTestOptionsArgs']] parse_test_options: ID of the Synthetics test to use a source of the global variable value. :param pulumi.Input[bool] secure: Sets the variable as secure. Defaults to `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of tags to associate with your synthetics global variable. :param pulumi.Input[str] value: The value of the global variable. @@ -118,6 +130,8 @@ def get(resource_name: str, __props__["description"] = description __props__["name"] = name + __props__["parse_test_id"] = parse_test_id + __props__["parse_test_options"] = parse_test_options __props__["secure"] = secure __props__["tags"] = tags __props__["value"] = value @@ -139,6 +153,22 @@ def name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "name") + @property + @pulumi.getter(name="parseTestId") + def parse_test_id(self) -> pulumi.Output[Optional[str]]: + """ + Id of the Synthetics test to use for a variable from test. + """ + return pulumi.get(self, "parse_test_id") + + @property + @pulumi.getter(name="parseTestOptions") + def parse_test_options(self) -> pulumi.Output[Optional['outputs.SyntheticsGlobalVariableParseTestOptions']]: + """ + ID of the Synthetics test to use a source of the global variable value. + """ + return pulumi.get(self, "parse_test_options") + @property @pulumi.getter def secure(self) -> pulumi.Output[Optional[bool]]: diff --git a/sdk/python/pulumi_datadog/user.py b/sdk/python/pulumi_datadog/user.py index 81e3e4708..59cc7a1a0 100644 --- a/sdk/python/pulumi_datadog/user.py +++ b/sdk/python/pulumi_datadog/user.py @@ -42,10 +42,32 @@ def __init__(__self__, email="new@example.com", roles=[ro_role.id]) ``` + ## Schema + + ### Required + + - **email** (String) Email address for user. + + ### Optional + + - **access_role** (String, Deprecated) Role description for user. Can be `st` (standard user), `adm` (admin user) or `ro` (read-only user). Default is `st`. `access_role` is ignored for new users created with this resource. New users have to use the `roles` attribute. + - **disabled** (Boolean) Whether the user is disabled. + - **handle** (String, Deprecated) The user handle, must be a valid email. + - **id** (String) The ID of this resource. + - **is_admin** (Boolean, Deprecated) Whether the user is an administrator. Warning: the corresponding query parameter is ignored by the Datadog API, thus the argument would always trigger an execution plan. + - **name** (String) Name for user. + - **role** (String, Deprecated) Role description for user. Warning: the corresponding query parameter is ignored by the Datadog API, thus the argument would always trigger an execution plan. + - **roles** (Set of String) A list a role IDs to assign to the user. + - **send_user_invitation** (Boolean) Whether an invitation email should be sent when the user is created. + + ### Read-only + + - **user_invitation_id** (String) The ID of the user invitation that was sent when creating the user. + - **verified** (Boolean) Returns true if Datadog user is verified. ## Import - users can be imported using their ID, e.g. + Import is supported using the following syntax ```sh $ pulumi import datadog:index/user:User example_user 6f1b44c0-30b2-11eb-86bc-279f7c1ebaa4 @@ -83,6 +105,9 @@ def __init__(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = dict() + if access_role is not None and not opts.urn: + warnings.warn("""This parameter is replaced by `roles` and will be removed from the next Major version""", DeprecationWarning) + pulumi.log.warn("access_role is deprecated: This parameter is replaced by `roles` and will be removed from the next Major version") __props__['access_role'] = access_role __props__['disabled'] = disabled if email is None and not opts.urn: