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