From bb353b5033fb58f3b22521164af7be3496aa965b Mon Sep 17 00:00:00 2001 From: Pulumi Bot <30351955+pulumi-bot@users.noreply.github.com> Date: Thu, 31 Oct 2024 07:21:44 -0700 Subject: [PATCH] Upgrade pulumi-terraform-bridge to v3.94.0 (#679) This PR was generated via `$ upgrade-provider pulumi/pulumi-datadog --kind=bridge --pr-reviewers=iwahbe`. --- - Upgrading pulumi-terraform-bridge from v3.93.1 to v3.94.0. - Upgrading pulumi-terraform-bridge/pf from v0.46.0 to v0.47.0. --- docs/_index.md | 1 + examples/go.mod | 4 +- examples/go.sum | 8 +- .../cmd/pulumi-resource-datadog/schema.json | 2 +- provider/go.mod | 42 +++++----- provider/go.sum | 84 +++++++++---------- sdk/go.mod | 2 +- sdk/go.sum | 4 +- sdk/python/pulumi_datadog/synthetics_test.py | 16 ++-- 9 files changed, 82 insertions(+), 81 deletions(-) diff --git a/docs/_index.md b/docs/_index.md index f26441319..cbf27d218 100644 --- a/docs/_index.md +++ b/docs/_index.md @@ -1,4 +1,5 @@ --- +# *** WARNING: This file was auto-generated. Do not edit by hand unless you're certain you know what you are doing! *** title: Datadog Provider meta_desc: Provides an overview on how to configure the Pulumi Datadog provider. layout: package diff --git a/examples/go.mod b/examples/go.mod index 18eab093c..edd9c1e83 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -2,7 +2,7 @@ module github.com/pulumi/pulumi-datadog/examples/v4 go 1.21 -require github.com/pulumi/pulumi/pkg/v3 v3.136.1 +require github.com/pulumi/pulumi/pkg/v3 v3.137.0 require ( cloud.google.com/go v0.112.1 // indirect @@ -123,7 +123,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/esc v0.10.0 // indirect - github.com/pulumi/pulumi/sdk/v3 v3.136.1 // indirect + github.com/pulumi/pulumi/sdk/v3 v3.137.0 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect diff --git a/examples/go.sum b/examples/go.sum index 408d628c7..e9c44d84f 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -342,10 +342,10 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE= github.com/pulumi/esc v0.10.0/go.mod h1:2Bfa+FWj/xl8CKqRTWbWgDX0SOD4opdQgvYSURTGK2c= -github.com/pulumi/pulumi/pkg/v3 v3.136.1 h1:zA8aJZ7qI0QgZkBKjjQaYHEcigK6pZfrbfG38imXzWo= -github.com/pulumi/pulumi/pkg/v3 v3.136.1/go.mod h1:Iz8QIs07AbEdrO52hEIEM5C4VBDUYFH2NdM9u2xxBxY= -github.com/pulumi/pulumi/sdk/v3 v3.136.1 h1:VJWTgdBrLvvzIkMbGq/epNEfT65P9gTvw14UF/I7hTI= -github.com/pulumi/pulumi/sdk/v3 v3.136.1/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= +github.com/pulumi/pulumi/pkg/v3 v3.137.0 h1:/KPFQQaB5W0/GhVxSTGnEzv3ZW5uieGN5Q2q+Lsr+Zw= +github.com/pulumi/pulumi/pkg/v3 v3.137.0/go.mod h1:ZQXJUTysDwq/mtilutRBKguH6DI+3b2WgNcOrs0whJ0= +github.com/pulumi/pulumi/sdk/v3 v3.137.0 h1:bxhYpOY7Z4xt+VmezEpHuhjpOekkaMqOjzxFg/1OhCw= +github.com/pulumi/pulumi/sdk/v3 v3.137.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= diff --git a/provider/cmd/pulumi-resource-datadog/schema.json b/provider/cmd/pulumi-resource-datadog/schema.json index cf5b0f081..e19f63498 100644 --- a/provider/cmd/pulumi-resource-datadog/schema.json +++ b/provider/cmd/pulumi-resource-datadog/schema.json @@ -38370,7 +38370,7 @@ } }, "datadog:index/syntheticsTest:SyntheticsTest": { - "description": "Provides a Datadog synthetics test resource. This can be used to create and manage Datadog synthetics test.\n\n#### *Warning*\nStarting from version 3.1.0+, the direct usage of global variables in the configuration is deprecated, in favor of\nlocal variables of type `global`. As an example, if you were previously using `{{ GLOBAL_VAR }}` directly in your\nconfiguration, add a `config_variable` of type `global` with the `id` matching the `id` of the global variable `GLOBAL_VAR`, which can be found in the Synthetics UI or from the output of the `datadog.SyntheticsGlobalVariable` resource. The name can be chosen freely. \n\nIn practice, it means going from (simplified configuration):\n\n```\nurl = https://{{ GLOBAL_VAR }}\n```\n\nto\n\n```\nconfig_variable {\n name = \"LOCAL_VAR\"\n id = [your_global_variable_id]\n type = \"global\"\n}\n```\n\nwhich you can now use in your request definition:\n```\nurl = https://{{ LOCAL_VAR }}\n```\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\n// Example Usage (Synthetics API test)\n// Create a new Datadog Synthetics API/HTTP test on https://www.example.org\nconst testUptime = new datadog.SyntheticsTest(\"test_uptime\", {\n name: \"An Uptime test on example.org\",\n type: \"api\",\n subtype: \"http\",\n status: \"live\",\n message: \"Notify @pagerduty\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n method: \"GET\",\n url: \"https://www.example.org\",\n },\n requestHeaders: {\n \"Content-Type\": \"application/json\",\n },\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n optionsList: {\n tickEvery: 900,\n retry: {\n count: 2,\n interval: 300,\n },\n monitorOptions: {\n renotifyInterval: 120,\n },\n },\n});\n// Example Usage (Authenticated API test)\n// Create a new Datadog Synthetics API/HTTP test on https://www.example.org\nconst testApi = new datadog.SyntheticsTest(\"test_api\", {\n name: \"An API test on example.org\",\n type: \"api\",\n subtype: \"http\",\n status: \"live\",\n message: \"Notify @pagerduty\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n method: \"GET\",\n url: \"https://www.example.org\",\n },\n requestHeaders: {\n \"Content-Type\": \"application/json\",\n Authentication: \"Token: 1234566789\",\n },\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n optionsList: {\n tickEvery: 900,\n retry: {\n count: 2,\n interval: 300,\n },\n monitorOptions: {\n renotifyInterval: 120,\n },\n },\n});\n// Example Usage (Synthetics SSL test)\n// Create a new Datadog Synthetics API/SSL test on example.org\nconst testSsl = new datadog.SyntheticsTest(\"test_ssl\", {\n name: \"An API test on example.org\",\n type: \"api\",\n subtype: \"ssl\",\n status: \"live\",\n message: \"Notify @pagerduty\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n },\n assertions: [{\n type: \"certificate\",\n operator: \"isInMoreThan\",\n target: \"30\",\n }],\n optionsList: {\n tickEvery: 900,\n acceptSelfSigned: true,\n },\n});\n// Example Usage (Synthetics TCP test)\n// Create a new Datadog Synthetics API/TCP test on example.org\nconst testTcp = new datadog.SyntheticsTest(\"test_tcp\", {\n name: \"An API test on example.org\",\n type: \"api\",\n subtype: \"tcp\",\n status: \"live\",\n message: \"Notify @pagerduty\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n },\n assertions: [{\n type: \"responseTime\",\n operator: \"lessThan\",\n target: \"2000\",\n }],\n configVariables: [{\n type: \"global\",\n name: \"MY_GLOBAL_VAR\",\n id: \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n }],\n optionsList: {\n tickEvery: 900,\n },\n});\n// Example Usage (Synthetics DNS test)\n// Create a new Datadog Synthetics API/DNS test on example.org\nconst testDns = new datadog.SyntheticsTest(\"test_dns\", {\n name: \"An API test on example.org\",\n type: \"api\",\n subtype: \"dns\",\n status: \"live\",\n message: \"Notify @pagerduty\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n host: \"example.org\",\n },\n assertions: [{\n type: \"recordSome\",\n operator: \"is\",\n property: \"A\",\n target: \"0.0.0.0\",\n }],\n optionsList: {\n tickEvery: 900,\n },\n});\n// Example Usage (Synthetics Multistep API test)\n// Create a new Datadog Synthetics Multistep API test\nconst testMultiStep = new datadog.SyntheticsTest(\"test_multi_step\", {\n name: \"Multistep API test\",\n type: \"api\",\n subtype: \"multi\",\n status: \"live\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n apiSteps: [\n {\n name: \"An API test on example.org\",\n subtype: \"http\",\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n requestDefinition: {\n method: \"GET\",\n url: \"https://www.example.org\",\n },\n requestHeaders: {\n \"Content-Type\": \"application/json\",\n Authentication: \"Token: 1234566789\",\n },\n },\n {\n name: \"An API test on example.org\",\n subtype: \"http\",\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n requestDefinition: {\n method: \"GET\",\n url: \"http://example.org\",\n },\n },\n {\n name: \"A gRPC health check on example.org\",\n subtype: \"grpc\",\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n callType: \"healthcheck\",\n service: \"greeter.Greeter\",\n },\n },\n {\n name: \"A gRPC behavior check on example.org\",\n subtype: \"grpc\",\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n callType: \"unary\",\n service: \"greeter.Greeter\",\n method: \"SayHello\",\n message: \"{\\\"name\\\": \\\"John\\\"}\",\n plainProtoFile: `syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n`,\n },\n },\n ],\n optionsList: {\n tickEvery: 900,\n acceptSelfSigned: true,\n },\n});\n// Example Usage (Synthetics Browser test)\n// Create a new Datadog Synthetics Browser test starting on https://www.example.org\nconst testBrowser = new datadog.SyntheticsTest(\"test_browser\", {\n name: \"A Browser test on example.org\",\n type: \"browser\",\n status: \"paused\",\n message: \"Notify @qa\",\n deviceIds: [\"laptop_large\"],\n locations: [\"aws:eu-central-1\"],\n tags: [],\n requestDefinition: {\n method: \"GET\",\n url: \"https://www.example.org\",\n },\n browserSteps: [\n {\n name: \"Check current url\",\n type: \"assertCurrentUrl\",\n params: {\n check: \"contains\",\n value: \"datadoghq\",\n },\n },\n {\n name: \"Test a downloaded file\",\n type: \"assertFileDownload\",\n params: {\n file: JSON.stringify({\n md5: \"abcdef1234567890\",\n sizeCheck: {\n type: \"equals\",\n value: 1,\n },\n nameCheck: {\n type: \"contains\",\n value: \".xls\",\n },\n }),\n },\n },\n ],\n browserVariables: [\n {\n type: \"text\",\n name: \"MY_PATTERN_VAR\",\n pattern: \"{{numeric(3)}}\",\n example: \"597\",\n },\n {\n type: \"email\",\n name: \"MY_EMAIL_VAR\",\n pattern: \"jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\",\n example: \"jd8-afe-ydv.4546132139@synthetics.dtdg.co\",\n },\n {\n type: \"global\",\n name: \"MY_GLOBAL_VAR\",\n id: \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n },\n ],\n optionsList: {\n tickEvery: 3600,\n },\n});\n// Example Usage (GRPC API behavior check test)\n// Create a new Datadog GRPC API test calling host example.org on port 443\n// targeting service `greeter.Greeter` with the method `SayHello`\n// and the message {\"name\": \"John\"}\nconst testGrpcUnary = new datadog.SyntheticsTest(\"test_grpc_unary\", {\n name: \"GRPC API behavior check test\",\n type: \"api\",\n subtype: \"grpc\",\n status: \"live\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n callType: \"unary\",\n service: \"greeter.Greeter\",\n method: \"SayHello\",\n message: \"{\\\"name\\\": \\\"John\\\"}\",\n plainProtoFile: `syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n`,\n },\n requestMetadata: {\n header: \"value\",\n },\n assertions: [\n {\n type: \"responseTime\",\n operator: \"lessThan\",\n target: \"2000\",\n },\n {\n operator: \"is\",\n type: \"grpcHealthcheckStatus\",\n target: \"1\",\n },\n {\n operator: \"is\",\n type: \"grpcProto\",\n target: \"proto target\",\n },\n {\n operator: \"is\",\n property: \"property\",\n type: \"grpcMetadata\",\n target: \"123\",\n },\n ],\n optionsList: {\n tickEvery: 900,\n },\n});\n// Example Usage (GRPC API health check test)\n// Create a new Datadog GRPC API test calling host example.org on port 443\n// testing the overall health of the service\nconst testGrpcHealth = new datadog.SyntheticsTest(\"test_grpc_health\", {\n name: \"GRPC API health check test\",\n type: \"api\",\n subtype: \"grpc\",\n status: \"live\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n callType: \"healthcheck\",\n service: \"greeter.Greeter\",\n },\n assertions: [\n {\n type: \"responseTime\",\n operator: \"lessThan\",\n target: \"2000\",\n },\n {\n operator: \"is\",\n type: \"grpcHealthcheckStatus\",\n target: \"1\",\n },\n ],\n optionsList: {\n tickEvery: 900,\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_datadog as datadog\n\n# Example Usage (Synthetics API test)\n# Create a new Datadog Synthetics API/HTTP test on https://www.example.org\ntest_uptime = datadog.SyntheticsTest(\"test_uptime\",\n name=\"An Uptime test on example.org\",\n type=\"api\",\n subtype=\"http\",\n status=\"live\",\n message=\"Notify @pagerduty\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"method\": \"GET\",\n \"url\": \"https://www.example.org\",\n },\n request_headers={\n \"Content-Type\": \"application/json\",\n },\n assertions=[{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n options_list={\n \"tick_every\": 900,\n \"retry\": {\n \"count\": 2,\n \"interval\": 300,\n },\n \"monitor_options\": {\n \"renotify_interval\": 120,\n },\n })\n# Example Usage (Authenticated API test)\n# Create a new Datadog Synthetics API/HTTP test on https://www.example.org\ntest_api = datadog.SyntheticsTest(\"test_api\",\n name=\"An API test on example.org\",\n type=\"api\",\n subtype=\"http\",\n status=\"live\",\n message=\"Notify @pagerduty\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"method\": \"GET\",\n \"url\": \"https://www.example.org\",\n },\n request_headers={\n \"Content-Type\": \"application/json\",\n \"Authentication\": \"Token: 1234566789\",\n },\n assertions=[{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n options_list={\n \"tick_every\": 900,\n \"retry\": {\n \"count\": 2,\n \"interval\": 300,\n },\n \"monitor_options\": {\n \"renotify_interval\": 120,\n },\n })\n# Example Usage (Synthetics SSL test)\n# Create a new Datadog Synthetics API/SSL test on example.org\ntest_ssl = datadog.SyntheticsTest(\"test_ssl\",\n name=\"An API test on example.org\",\n type=\"api\",\n subtype=\"ssl\",\n status=\"live\",\n message=\"Notify @pagerduty\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"host\": \"example.org\",\n \"port\": \"443\",\n },\n assertions=[{\n \"type\": \"certificate\",\n \"operator\": \"isInMoreThan\",\n \"target\": \"30\",\n }],\n options_list={\n \"tick_every\": 900,\n \"accept_self_signed\": True,\n })\n# Example Usage (Synthetics TCP test)\n# Create a new Datadog Synthetics API/TCP test on example.org\ntest_tcp = datadog.SyntheticsTest(\"test_tcp\",\n name=\"An API test on example.org\",\n type=\"api\",\n subtype=\"tcp\",\n status=\"live\",\n message=\"Notify @pagerduty\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"host\": \"example.org\",\n \"port\": \"443\",\n },\n assertions=[{\n \"type\": \"responseTime\",\n \"operator\": \"lessThan\",\n \"target\": \"2000\",\n }],\n config_variables=[{\n \"type\": \"global\",\n \"name\": \"MY_GLOBAL_VAR\",\n \"id\": \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n }],\n options_list={\n \"tick_every\": 900,\n })\n# Example Usage (Synthetics DNS test)\n# Create a new Datadog Synthetics API/DNS test on example.org\ntest_dns = datadog.SyntheticsTest(\"test_dns\",\n name=\"An API test on example.org\",\n type=\"api\",\n subtype=\"dns\",\n status=\"live\",\n message=\"Notify @pagerduty\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"host\": \"example.org\",\n },\n assertions=[{\n \"type\": \"recordSome\",\n \"operator\": \"is\",\n \"property\": \"A\",\n \"target\": \"0.0.0.0\",\n }],\n options_list={\n \"tick_every\": 900,\n })\n# Example Usage (Synthetics Multistep API test)\n# Create a new Datadog Synthetics Multistep API test\ntest_multi_step = datadog.SyntheticsTest(\"test_multi_step\",\n name=\"Multistep API test\",\n type=\"api\",\n subtype=\"multi\",\n status=\"live\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n api_steps=[\n {\n \"name\": \"An API test on example.org\",\n \"subtype\": \"http\",\n \"assertions\": [{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n \"request_definition\": {\n \"method\": \"GET\",\n \"url\": \"https://www.example.org\",\n },\n \"request_headers\": {\n \"content__type\": \"application/json\",\n \"authentication\": \"Token: 1234566789\",\n },\n },\n {\n \"name\": \"An API test on example.org\",\n \"subtype\": \"http\",\n \"assertions\": [{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n \"request_definition\": {\n \"method\": \"GET\",\n \"url\": \"http://example.org\",\n },\n },\n {\n \"name\": \"A gRPC health check on example.org\",\n \"subtype\": \"grpc\",\n \"assertions\": [{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n \"request_definition\": {\n \"host\": \"example.org\",\n \"port\": \"443\",\n \"call_type\": \"healthcheck\",\n \"service\": \"greeter.Greeter\",\n },\n },\n {\n \"name\": \"A gRPC behavior check on example.org\",\n \"subtype\": \"grpc\",\n \"assertions\": [{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n \"request_definition\": {\n \"host\": \"example.org\",\n \"port\": \"443\",\n \"call_type\": \"unary\",\n \"service\": \"greeter.Greeter\",\n \"method\": \"SayHello\",\n \"message\": \"{\\\"name\\\": \\\"John\\\"}\",\n \"plain_proto_file\": \"\"\"syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n\"\"\",\n },\n },\n ],\n options_list={\n \"tick_every\": 900,\n \"accept_self_signed\": True,\n })\n# Example Usage (Synthetics Browser test)\n# Create a new Datadog Synthetics Browser test starting on https://www.example.org\ntest_browser = datadog.SyntheticsTest(\"test_browser\",\n name=\"A Browser test on example.org\",\n type=\"browser\",\n status=\"paused\",\n message=\"Notify @qa\",\n device_ids=[\"laptop_large\"],\n locations=[\"aws:eu-central-1\"],\n tags=[],\n request_definition={\n \"method\": \"GET\",\n \"url\": \"https://www.example.org\",\n },\n browser_steps=[\n {\n \"name\": \"Check current url\",\n \"type\": \"assertCurrentUrl\",\n \"params\": {\n \"check\": \"contains\",\n \"value\": \"datadoghq\",\n },\n },\n {\n \"name\": \"Test a downloaded file\",\n \"type\": \"assertFileDownload\",\n \"params\": {\n \"file\": json.dumps({\n \"md5\": \"abcdef1234567890\",\n \"size_check\": {\n \"type\": \"equals\",\n \"value\": 1,\n },\n \"name_check\": {\n \"type\": \"contains\",\n \"value\": \".xls\",\n },\n }),\n },\n },\n ],\n browser_variables=[\n {\n \"type\": \"text\",\n \"name\": \"MY_PATTERN_VAR\",\n \"pattern\": \"{{numeric(3)}}\",\n \"example\": \"597\",\n },\n {\n \"type\": \"email\",\n \"name\": \"MY_EMAIL_VAR\",\n \"pattern\": \"jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\",\n \"example\": \"jd8-afe-ydv.4546132139@synthetics.dtdg.co\",\n },\n {\n \"type\": \"global\",\n \"name\": \"MY_GLOBAL_VAR\",\n \"id\": \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n },\n ],\n options_list={\n \"tick_every\": 3600,\n })\n# Example Usage (GRPC API behavior check test)\n# Create a new Datadog GRPC API test calling host example.org on port 443\n# targeting service `greeter.Greeter` with the method `SayHello`\n# and the message {\"name\": \"John\"}\ntest_grpc_unary = datadog.SyntheticsTest(\"test_grpc_unary\",\n name=\"GRPC API behavior check test\",\n type=\"api\",\n subtype=\"grpc\",\n status=\"live\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"host\": \"example.org\",\n \"port\": \"443\",\n \"call_type\": \"unary\",\n \"service\": \"greeter.Greeter\",\n \"method\": \"SayHello\",\n \"message\": \"{\\\"name\\\": \\\"John\\\"}\",\n \"plain_proto_file\": \"\"\"syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n\"\"\",\n },\n request_metadata={\n \"header\": \"value\",\n },\n assertions=[\n {\n \"type\": \"responseTime\",\n \"operator\": \"lessThan\",\n \"target\": \"2000\",\n },\n {\n \"operator\": \"is\",\n \"type\": \"grpcHealthcheckStatus\",\n \"target\": \"1\",\n },\n {\n \"operator\": \"is\",\n \"type\": \"grpcProto\",\n \"target\": \"proto target\",\n },\n {\n \"operator\": \"is\",\n \"property\": \"property\",\n \"type\": \"grpcMetadata\",\n \"target\": \"123\",\n },\n ],\n options_list={\n \"tick_every\": 900,\n })\n# Example Usage (GRPC API health check test)\n# Create a new Datadog GRPC API test calling host example.org on port 443\n# testing the overall health of the service\ntest_grpc_health = datadog.SyntheticsTest(\"test_grpc_health\",\n name=\"GRPC API health check test\",\n type=\"api\",\n subtype=\"grpc\",\n status=\"live\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"host\": \"example.org\",\n \"port\": \"443\",\n \"call_type\": \"healthcheck\",\n \"service\": \"greeter.Greeter\",\n },\n assertions=[\n {\n \"type\": \"responseTime\",\n \"operator\": \"lessThan\",\n \"target\": \"2000\",\n },\n {\n \"operator\": \"is\",\n \"type\": \"grpcHealthcheckStatus\",\n \"target\": \"1\",\n },\n ],\n options_list={\n \"tick_every\": 900,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Example Usage (Synthetics API test)\n // Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n var testUptime = new Datadog.SyntheticsTest(\"test_uptime\", new()\n {\n Name = \"An Uptime test on example.org\",\n Type = \"api\",\n Subtype = \"http\",\n Status = \"live\",\n Message = \"Notify @pagerduty\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Method = \"GET\",\n Url = \"https://www.example.org\",\n },\n RequestHeaders = \n {\n { \"Content-Type\", \"application/json\" },\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n Retry = new Datadog.Inputs.SyntheticsTestOptionsListRetryArgs\n {\n Count = 2,\n Interval = 300,\n },\n MonitorOptions = new Datadog.Inputs.SyntheticsTestOptionsListMonitorOptionsArgs\n {\n RenotifyInterval = 120,\n },\n },\n });\n\n // Example Usage (Authenticated API test)\n // Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n var testApi = new Datadog.SyntheticsTest(\"test_api\", new()\n {\n Name = \"An API test on example.org\",\n Type = \"api\",\n Subtype = \"http\",\n Status = \"live\",\n Message = \"Notify @pagerduty\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Method = \"GET\",\n Url = \"https://www.example.org\",\n },\n RequestHeaders = \n {\n { \"Content-Type\", \"application/json\" },\n { \"Authentication\", \"Token: 1234566789\" },\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n Retry = new Datadog.Inputs.SyntheticsTestOptionsListRetryArgs\n {\n Count = 2,\n Interval = 300,\n },\n MonitorOptions = new Datadog.Inputs.SyntheticsTestOptionsListMonitorOptionsArgs\n {\n RenotifyInterval = 120,\n },\n },\n });\n\n // Example Usage (Synthetics SSL test)\n // Create a new Datadog Synthetics API/SSL test on example.org\n var testSsl = new Datadog.SyntheticsTest(\"test_ssl\", new()\n {\n Name = \"An API test on example.org\",\n Type = \"api\",\n Subtype = \"ssl\",\n Status = \"live\",\n Message = \"Notify @pagerduty\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"certificate\",\n Operator = \"isInMoreThan\",\n Target = \"30\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n AcceptSelfSigned = true,\n },\n });\n\n // Example Usage (Synthetics TCP test)\n // Create a new Datadog Synthetics API/TCP test on example.org\n var testTcp = new Datadog.SyntheticsTest(\"test_tcp\", new()\n {\n Name = \"An API test on example.org\",\n Type = \"api\",\n Subtype = \"tcp\",\n Status = \"live\",\n Message = \"Notify @pagerduty\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"responseTime\",\n Operator = \"lessThan\",\n Target = \"2000\",\n },\n },\n ConfigVariables = new[]\n {\n new Datadog.Inputs.SyntheticsTestConfigVariableArgs\n {\n Type = \"global\",\n Name = \"MY_GLOBAL_VAR\",\n Id = \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n },\n });\n\n // Example Usage (Synthetics DNS test)\n // Create a new Datadog Synthetics API/DNS test on example.org\n var testDns = new Datadog.SyntheticsTest(\"test_dns\", new()\n {\n Name = \"An API test on example.org\",\n Type = \"api\",\n Subtype = \"dns\",\n Status = \"live\",\n Message = \"Notify @pagerduty\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Host = \"example.org\",\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"recordSome\",\n Operator = \"is\",\n Property = \"A\",\n Target = \"0.0.0.0\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n },\n });\n\n // Example Usage (Synthetics Multistep API test)\n // Create a new Datadog Synthetics Multistep API test\n var testMultiStep = new Datadog.SyntheticsTest(\"test_multi_step\", new()\n {\n Name = \"Multistep API test\",\n Type = \"api\",\n Subtype = \"multi\",\n Status = \"live\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n ApiSteps = new[]\n {\n new Datadog.Inputs.SyntheticsTestApiStepArgs\n {\n Name = \"An API test on example.org\",\n Subtype = \"http\",\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs\n {\n Method = \"GET\",\n Url = \"https://www.example.org\",\n },\n RequestHeaders = \n {\n { \"Content-Type\", \"application/json\" },\n { \"Authentication\", \"Token: 1234566789\" },\n },\n },\n new Datadog.Inputs.SyntheticsTestApiStepArgs\n {\n Name = \"An API test on example.org\",\n Subtype = \"http\",\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs\n {\n Method = \"GET\",\n Url = \"http://example.org\",\n },\n },\n new Datadog.Inputs.SyntheticsTestApiStepArgs\n {\n Name = \"A gRPC health check on example.org\",\n Subtype = \"grpc\",\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n CallType = \"healthcheck\",\n Service = \"greeter.Greeter\",\n },\n },\n new Datadog.Inputs.SyntheticsTestApiStepArgs\n {\n Name = \"A gRPC behavior check on example.org\",\n Subtype = \"grpc\",\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n CallType = \"unary\",\n Service = \"greeter.Greeter\",\n Method = \"SayHello\",\n Message = \"{\\\"name\\\": \\\"John\\\"}\",\n PlainProtoFile = @\"syntax = \"\"proto3\"\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n\",\n },\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n AcceptSelfSigned = true,\n },\n });\n\n // Example Usage (Synthetics Browser test)\n // Create a new Datadog Synthetics Browser test starting on https://www.example.org\n var testBrowser = new Datadog.SyntheticsTest(\"test_browser\", new()\n {\n Name = \"A Browser test on example.org\",\n Type = \"browser\",\n Status = \"paused\",\n Message = \"Notify @qa\",\n DeviceIds = new[]\n {\n \"laptop_large\",\n },\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[] {},\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Method = \"GET\",\n Url = \"https://www.example.org\",\n },\n BrowserSteps = new[]\n {\n new Datadog.Inputs.SyntheticsTestBrowserStepArgs\n {\n Name = \"Check current url\",\n Type = \"assertCurrentUrl\",\n Params = new Datadog.Inputs.SyntheticsTestBrowserStepParamsArgs\n {\n Check = \"contains\",\n Value = \"datadoghq\",\n },\n },\n new Datadog.Inputs.SyntheticsTestBrowserStepArgs\n {\n Name = \"Test a downloaded file\",\n Type = \"assertFileDownload\",\n Params = new Datadog.Inputs.SyntheticsTestBrowserStepParamsArgs\n {\n File = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"md5\"] = \"abcdef1234567890\",\n [\"sizeCheck\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"equals\",\n [\"value\"] = 1,\n },\n [\"nameCheck\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"contains\",\n [\"value\"] = \".xls\",\n },\n }),\n },\n },\n },\n BrowserVariables = new[]\n {\n new Datadog.Inputs.SyntheticsTestBrowserVariableArgs\n {\n Type = \"text\",\n Name = \"MY_PATTERN_VAR\",\n Pattern = \"{{numeric(3)}}\",\n Example = \"597\",\n },\n new Datadog.Inputs.SyntheticsTestBrowserVariableArgs\n {\n Type = \"email\",\n Name = \"MY_EMAIL_VAR\",\n Pattern = \"jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\",\n Example = \"jd8-afe-ydv.4546132139@synthetics.dtdg.co\",\n },\n new Datadog.Inputs.SyntheticsTestBrowserVariableArgs\n {\n Type = \"global\",\n Name = \"MY_GLOBAL_VAR\",\n Id = \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 3600,\n },\n });\n\n // Example Usage (GRPC API behavior check test)\n // Create a new Datadog GRPC API test calling host example.org on port 443\n // targeting service `greeter.Greeter` with the method `SayHello`\n // and the message {\"name\": \"John\"}\n var testGrpcUnary = new Datadog.SyntheticsTest(\"test_grpc_unary\", new()\n {\n Name = \"GRPC API behavior check test\",\n Type = \"api\",\n Subtype = \"grpc\",\n Status = \"live\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n CallType = \"unary\",\n Service = \"greeter.Greeter\",\n Method = \"SayHello\",\n Message = \"{\\\"name\\\": \\\"John\\\"}\",\n PlainProtoFile = @\"syntax = \"\"proto3\"\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n\",\n },\n RequestMetadata = \n {\n { \"header\", \"value\" },\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"responseTime\",\n Operator = \"lessThan\",\n Target = \"2000\",\n },\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Operator = \"is\",\n Type = \"grpcHealthcheckStatus\",\n Target = \"1\",\n },\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Operator = \"is\",\n Type = \"grpcProto\",\n Target = \"proto target\",\n },\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Operator = \"is\",\n Property = \"property\",\n Type = \"grpcMetadata\",\n Target = \"123\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n },\n });\n\n // Example Usage (GRPC API health check test)\n // Create a new Datadog GRPC API test calling host example.org on port 443\n // testing the overall health of the service\n var testGrpcHealth = new Datadog.SyntheticsTest(\"test_grpc_health\", new()\n {\n Name = \"GRPC API health check test\",\n Type = \"api\",\n Subtype = \"grpc\",\n Status = \"live\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n CallType = \"healthcheck\",\n Service = \"greeter.Greeter\",\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"responseTime\",\n Operator = \"lessThan\",\n Target = \"2000\",\n },\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Operator = \"is\",\n Type = \"grpcHealthcheckStatus\",\n Target = \"1\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-datadog/sdk/v4/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example Usage (Synthetics API test)\n\t\t// Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n\t\t_, err := datadog.NewSyntheticsTest(ctx, \"test_uptime\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"An Uptime test on example.org\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"http\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tMessage: pulumi.String(\"Notify @pagerduty\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\tUrl: pulumi.String(\"https://www.example.org\"),\n\t\t\t},\n\t\t\tRequestHeaders: pulumi.StringMap{\n\t\t\t\t\"Content-Type\": pulumi.String(\"application/json\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t\tRetry: \u0026datadog.SyntheticsTestOptionsListRetryArgs{\n\t\t\t\t\tCount: pulumi.Int(2),\n\t\t\t\t\tInterval: pulumi.Int(300),\n\t\t\t\t},\n\t\t\t\tMonitorOptions: \u0026datadog.SyntheticsTestOptionsListMonitorOptionsArgs{\n\t\t\t\t\tRenotifyInterval: pulumi.Int(120),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (Authenticated API test)\n\t\t// Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_api\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"http\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tMessage: pulumi.String(\"Notify @pagerduty\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\tUrl: pulumi.String(\"https://www.example.org\"),\n\t\t\t},\n\t\t\tRequestHeaders: pulumi.StringMap{\n\t\t\t\t\"Content-Type\": pulumi.String(\"application/json\"),\n\t\t\t\t\"Authentication\": pulumi.String(\"Token: 1234566789\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t\tRetry: \u0026datadog.SyntheticsTestOptionsListRetryArgs{\n\t\t\t\t\tCount: pulumi.Int(2),\n\t\t\t\t\tInterval: pulumi.Int(300),\n\t\t\t\t},\n\t\t\t\tMonitorOptions: \u0026datadog.SyntheticsTestOptionsListMonitorOptionsArgs{\n\t\t\t\t\tRenotifyInterval: pulumi.Int(120),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (Synthetics SSL test)\n\t\t// Create a new Datadog Synthetics API/SSL test on example.org\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_ssl\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"ssl\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tMessage: pulumi.String(\"Notify @pagerduty\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"certificate\"),\n\t\t\t\t\tOperator: pulumi.String(\"isInMoreThan\"),\n\t\t\t\t\tTarget: pulumi.String(\"30\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t\tAcceptSelfSigned: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (Synthetics TCP test)\n\t\t// Create a new Datadog Synthetics API/TCP test on example.org\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_tcp\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"tcp\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tMessage: pulumi.String(\"Notify @pagerduty\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"responseTime\"),\n\t\t\t\t\tOperator: pulumi.String(\"lessThan\"),\n\t\t\t\t\tTarget: pulumi.String(\"2000\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConfigVariables: datadog.SyntheticsTestConfigVariableArray{\n\t\t\t\t\u0026datadog.SyntheticsTestConfigVariableArgs{\n\t\t\t\t\tType: pulumi.String(\"global\"),\n\t\t\t\t\tName: pulumi.String(\"MY_GLOBAL_VAR\"),\n\t\t\t\t\tId: pulumi.String(\"76636cd1-82e2-4aeb-9cfe-51366a8198a2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (Synthetics DNS test)\n\t\t// Create a new Datadog Synthetics API/DNS test on example.org\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_dns\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"dns\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tMessage: pulumi.String(\"Notify @pagerduty\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"recordSome\"),\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tProperty: pulumi.String(\"A\"),\n\t\t\t\t\tTarget: pulumi.String(\"0.0.0.0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (Synthetics Multistep API test)\n\t\t// Create a new Datadog Synthetics Multistep API test\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_multi_step\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"Multistep API test\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"multi\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tApiSteps: datadog.SyntheticsTestApiStepArray{\n\t\t\t\t\u0026datadog.SyntheticsTestApiStepArgs{\n\t\t\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\t\t\tSubtype: pulumi.String(\"http\"),\n\t\t\t\t\tAssertions: datadog.SyntheticsTestApiStepAssertionArray{\n\t\t\t\t\t\t\u0026datadog.SyntheticsTestApiStepAssertionArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestApiStepRequestDefinitionArgs{\n\t\t\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\t\t\tUrl: pulumi.String(\"https://www.example.org\"),\n\t\t\t\t\t},\n\t\t\t\t\tRequestHeaders: pulumi.StringMap{\n\t\t\t\t\t\t\"Content-Type\": pulumi.String(\"application/json\"),\n\t\t\t\t\t\t\"Authentication\": pulumi.String(\"Token: 1234566789\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestApiStepArgs{\n\t\t\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\t\t\tSubtype: pulumi.String(\"http\"),\n\t\t\t\t\tAssertions: datadog.SyntheticsTestApiStepAssertionArray{\n\t\t\t\t\t\t\u0026datadog.SyntheticsTestApiStepAssertionArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestApiStepRequestDefinitionArgs{\n\t\t\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\t\t\tUrl: pulumi.String(\"http://example.org\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestApiStepArgs{\n\t\t\t\t\tName: pulumi.String(\"A gRPC health check on example.org\"),\n\t\t\t\t\tSubtype: pulumi.String(\"grpc\"),\n\t\t\t\t\tAssertions: datadog.SyntheticsTestApiStepAssertionArray{\n\t\t\t\t\t\t\u0026datadog.SyntheticsTestApiStepAssertionArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestApiStepRequestDefinitionArgs{\n\t\t\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\t\t\tCallType: pulumi.String(\"healthcheck\"),\n\t\t\t\t\t\tService: pulumi.String(\"greeter.Greeter\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestApiStepArgs{\n\t\t\t\t\tName: pulumi.String(\"A gRPC behavior check on example.org\"),\n\t\t\t\t\tSubtype: pulumi.String(\"grpc\"),\n\t\t\t\t\tAssertions: datadog.SyntheticsTestApiStepAssertionArray{\n\t\t\t\t\t\t\u0026datadog.SyntheticsTestApiStepAssertionArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestApiStepRequestDefinitionArgs{\n\t\t\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\t\t\tCallType: pulumi.String(\"unary\"),\n\t\t\t\t\t\tService: pulumi.String(\"greeter.Greeter\"),\n\t\t\t\t\t\tMethod: pulumi.String(\"SayHello\"),\n\t\t\t\t\t\tMessage: pulumi.String(\"{\\\"name\\\": \\\"John\\\"}\"),\n\t\t\t\t\t\tPlainProtoFile: pulumi.String(`syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n`),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t\tAcceptSelfSigned: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"md5\": \"abcdef1234567890\",\n\t\t\t\"sizeCheck\": map[string]interface{}{\n\t\t\t\t\"type\": \"equals\",\n\t\t\t\t\"value\": 1,\n\t\t\t},\n\t\t\t\"nameCheck\": map[string]interface{}{\n\t\t\t\t\"type\": \"contains\",\n\t\t\t\t\"value\": \".xls\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t// Example Usage (Synthetics Browser test)\n\t\t// Create a new Datadog Synthetics Browser test starting on https://www.example.org\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_browser\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"A Browser test on example.org\"),\n\t\t\tType: pulumi.String(\"browser\"),\n\t\t\tStatus: pulumi.String(\"paused\"),\n\t\t\tMessage: pulumi.String(\"Notify @qa\"),\n\t\t\tDeviceIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"laptop_large\"),\n\t\t\t},\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\tUrl: pulumi.String(\"https://www.example.org\"),\n\t\t\t},\n\t\t\tBrowserSteps: datadog.SyntheticsTestBrowserStepArray{\n\t\t\t\t\u0026datadog.SyntheticsTestBrowserStepArgs{\n\t\t\t\t\tName: pulumi.String(\"Check current url\"),\n\t\t\t\t\tType: pulumi.String(\"assertCurrentUrl\"),\n\t\t\t\t\tParams: \u0026datadog.SyntheticsTestBrowserStepParamsArgs{\n\t\t\t\t\t\tCheck: pulumi.String(\"contains\"),\n\t\t\t\t\t\tValue: pulumi.String(\"datadoghq\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestBrowserStepArgs{\n\t\t\t\t\tName: pulumi.String(\"Test a downloaded file\"),\n\t\t\t\t\tType: pulumi.String(\"assertFileDownload\"),\n\t\t\t\t\tParams: \u0026datadog.SyntheticsTestBrowserStepParamsArgs{\n\t\t\t\t\t\tFile: pulumi.String(json0),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBrowserVariables: datadog.SyntheticsTestBrowserVariableArray{\n\t\t\t\t\u0026datadog.SyntheticsTestBrowserVariableArgs{\n\t\t\t\t\tType: pulumi.String(\"text\"),\n\t\t\t\t\tName: pulumi.String(\"MY_PATTERN_VAR\"),\n\t\t\t\t\tPattern: pulumi.String(\"{{numeric(3)}}\"),\n\t\t\t\t\tExample: pulumi.String(\"597\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestBrowserVariableArgs{\n\t\t\t\t\tType: pulumi.String(\"email\"),\n\t\t\t\t\tName: pulumi.String(\"MY_EMAIL_VAR\"),\n\t\t\t\t\tPattern: pulumi.String(\"jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\"),\n\t\t\t\t\tExample: pulumi.String(\"jd8-afe-ydv.4546132139@synthetics.dtdg.co\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestBrowserVariableArgs{\n\t\t\t\t\tType: pulumi.String(\"global\"),\n\t\t\t\t\tName: pulumi.String(\"MY_GLOBAL_VAR\"),\n\t\t\t\t\tId: pulumi.String(\"76636cd1-82e2-4aeb-9cfe-51366a8198a2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(3600),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (GRPC API behavior check test)\n\t\t// Create a new Datadog GRPC API test calling host example.org on port 443\n\t\t// targeting service `greeter.Greeter` with the method `SayHello`\n\t\t// and the message {\"name\": \"John\"}\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_grpc_unary\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"GRPC API behavior check test\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"grpc\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\tCallType: pulumi.String(\"unary\"),\n\t\t\t\tService: pulumi.String(\"greeter.Greeter\"),\n\t\t\t\tMethod: pulumi.String(\"SayHello\"),\n\t\t\t\tMessage: pulumi.String(\"{\\\"name\\\": \\\"John\\\"}\"),\n\t\t\t\tPlainProtoFile: pulumi.String(`syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n`),\n\t\t\t},\n\t\t\tRequestMetadata: pulumi.StringMap{\n\t\t\t\t\"header\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"responseTime\"),\n\t\t\t\t\tOperator: pulumi.String(\"lessThan\"),\n\t\t\t\t\tTarget: pulumi.String(\"2000\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tType: pulumi.String(\"grpcHealthcheckStatus\"),\n\t\t\t\t\tTarget: pulumi.String(\"1\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tType: pulumi.String(\"grpcProto\"),\n\t\t\t\t\tTarget: pulumi.String(\"proto target\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tProperty: pulumi.String(\"property\"),\n\t\t\t\t\tType: pulumi.String(\"grpcMetadata\"),\n\t\t\t\t\tTarget: pulumi.String(\"123\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (GRPC API health check test)\n\t\t// Create a new Datadog GRPC API test calling host example.org on port 443\n\t\t// testing the overall health of the service\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_grpc_health\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"GRPC API health check test\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"grpc\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\tCallType: pulumi.String(\"healthcheck\"),\n\t\t\t\tService: pulumi.String(\"greeter.Greeter\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"responseTime\"),\n\t\t\t\t\tOperator: pulumi.String(\"lessThan\"),\n\t\t\t\t\tTarget: pulumi.String(\"2000\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tType: pulumi.String(\"grpcHealthcheckStatus\"),\n\t\t\t\t\tTarget: pulumi.String(\"1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.datadog.SyntheticsTest;\nimport com.pulumi.datadog.SyntheticsTestArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestRequestDefinitionArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestAssertionArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestOptionsListArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestOptionsListRetryArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestOptionsListMonitorOptionsArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestConfigVariableArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestApiStepArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestApiStepRequestDefinitionArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestBrowserStepArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestBrowserStepParamsArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestBrowserVariableArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Example Usage (Synthetics API test)\n // Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n var testUptime = new SyntheticsTest(\"testUptime\", SyntheticsTestArgs.builder()\n .name(\"An Uptime test on example.org\")\n .type(\"api\")\n .subtype(\"http\")\n .status(\"live\")\n .message(\"Notify @pagerduty\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .method(\"GET\")\n .url(\"https://www.example.org\")\n .build())\n .requestHeaders(Map.of(\"Content-Type\", \"application/json\"))\n .assertions(SyntheticsTestAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .retry(SyntheticsTestOptionsListRetryArgs.builder()\n .count(2)\n .interval(300)\n .build())\n .monitorOptions(SyntheticsTestOptionsListMonitorOptionsArgs.builder()\n .renotifyInterval(120)\n .build())\n .build())\n .build());\n\n // Example Usage (Authenticated API test)\n // Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n var testApi = new SyntheticsTest(\"testApi\", SyntheticsTestArgs.builder()\n .name(\"An API test on example.org\")\n .type(\"api\")\n .subtype(\"http\")\n .status(\"live\")\n .message(\"Notify @pagerduty\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .method(\"GET\")\n .url(\"https://www.example.org\")\n .build())\n .requestHeaders(Map.ofEntries(\n Map.entry(\"Content-Type\", \"application/json\"),\n Map.entry(\"Authentication\", \"Token: 1234566789\")\n ))\n .assertions(SyntheticsTestAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .retry(SyntheticsTestOptionsListRetryArgs.builder()\n .count(2)\n .interval(300)\n .build())\n .monitorOptions(SyntheticsTestOptionsListMonitorOptionsArgs.builder()\n .renotifyInterval(120)\n .build())\n .build())\n .build());\n\n // Example Usage (Synthetics SSL test)\n // Create a new Datadog Synthetics API/SSL test on example.org\n var testSsl = new SyntheticsTest(\"testSsl\", SyntheticsTestArgs.builder()\n .name(\"An API test on example.org\")\n .type(\"api\")\n .subtype(\"ssl\")\n .status(\"live\")\n .message(\"Notify @pagerduty\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .build())\n .assertions(SyntheticsTestAssertionArgs.builder()\n .type(\"certificate\")\n .operator(\"isInMoreThan\")\n .target(30)\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .acceptSelfSigned(true)\n .build())\n .build());\n\n // Example Usage (Synthetics TCP test)\n // Create a new Datadog Synthetics API/TCP test on example.org\n var testTcp = new SyntheticsTest(\"testTcp\", SyntheticsTestArgs.builder()\n .name(\"An API test on example.org\")\n .type(\"api\")\n .subtype(\"tcp\")\n .status(\"live\")\n .message(\"Notify @pagerduty\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .build())\n .assertions(SyntheticsTestAssertionArgs.builder()\n .type(\"responseTime\")\n .operator(\"lessThan\")\n .target(2000)\n .build())\n .configVariables(SyntheticsTestConfigVariableArgs.builder()\n .type(\"global\")\n .name(\"MY_GLOBAL_VAR\")\n .id(\"76636cd1-82e2-4aeb-9cfe-51366a8198a2\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .build())\n .build());\n\n // Example Usage (Synthetics DNS test)\n // Create a new Datadog Synthetics API/DNS test on example.org\n var testDns = new SyntheticsTest(\"testDns\", SyntheticsTestArgs.builder()\n .name(\"An API test on example.org\")\n .type(\"api\")\n .subtype(\"dns\")\n .status(\"live\")\n .message(\"Notify @pagerduty\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .build())\n .assertions(SyntheticsTestAssertionArgs.builder()\n .type(\"recordSome\")\n .operator(\"is\")\n .property(\"A\")\n .target(\"0.0.0.0\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .build())\n .build());\n\n // Example Usage (Synthetics Multistep API test)\n // Create a new Datadog Synthetics Multistep API test\n var testMultiStep = new SyntheticsTest(\"testMultiStep\", SyntheticsTestArgs.builder()\n .name(\"Multistep API test\")\n .type(\"api\")\n .subtype(\"multi\")\n .status(\"live\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .apiSteps( \n SyntheticsTestApiStepArgs.builder()\n .name(\"An API test on example.org\")\n .subtype(\"http\")\n .assertions(SyntheticsTestApiStepAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()\n .method(\"GET\")\n .url(\"https://www.example.org\")\n .build())\n .requestHeaders(Map.ofEntries(\n Map.entry(\"Content-Type\", \"application/json\"),\n Map.entry(\"Authentication\", \"Token: 1234566789\")\n ))\n .build(),\n SyntheticsTestApiStepArgs.builder()\n .name(\"An API test on example.org\")\n .subtype(\"http\")\n .assertions(SyntheticsTestApiStepAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()\n .method(\"GET\")\n .url(\"http://example.org\")\n .build())\n .build(),\n SyntheticsTestApiStepArgs.builder()\n .name(\"A gRPC health check on example.org\")\n .subtype(\"grpc\")\n .assertions(SyntheticsTestApiStepAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .callType(\"healthcheck\")\n .service(\"greeter.Greeter\")\n .build())\n .build(),\n SyntheticsTestApiStepArgs.builder()\n .name(\"A gRPC behavior check on example.org\")\n .subtype(\"grpc\")\n .assertions(SyntheticsTestApiStepAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .callType(\"unary\")\n .service(\"greeter.Greeter\")\n .method(\"SayHello\")\n .message(\"{\\\"name\\\": \\\"John\\\"}\")\n .plainProtoFile(\"\"\"\nsyntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n \"\"\")\n .build())\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .acceptSelfSigned(true)\n .build())\n .build());\n\n // Example Usage (Synthetics Browser test)\n // Create a new Datadog Synthetics Browser test starting on https://www.example.org\n var testBrowser = new SyntheticsTest(\"testBrowser\", SyntheticsTestArgs.builder()\n .name(\"A Browser test on example.org\")\n .type(\"browser\")\n .status(\"paused\")\n .message(\"Notify @qa\")\n .deviceIds(\"laptop_large\")\n .locations(\"aws:eu-central-1\")\n .tags()\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .method(\"GET\")\n .url(\"https://www.example.org\")\n .build())\n .browserSteps( \n SyntheticsTestBrowserStepArgs.builder()\n .name(\"Check current url\")\n .type(\"assertCurrentUrl\")\n .params(SyntheticsTestBrowserStepParamsArgs.builder()\n .check(\"contains\")\n .value(\"datadoghq\")\n .build())\n .build(),\n SyntheticsTestBrowserStepArgs.builder()\n .name(\"Test a downloaded file\")\n .type(\"assertFileDownload\")\n .params(SyntheticsTestBrowserStepParamsArgs.builder()\n .file(serializeJson(\n jsonObject(\n jsonProperty(\"md5\", \"abcdef1234567890\"),\n jsonProperty(\"sizeCheck\", jsonObject(\n jsonProperty(\"type\", \"equals\"),\n jsonProperty(\"value\", 1)\n )),\n jsonProperty(\"nameCheck\", jsonObject(\n jsonProperty(\"type\", \"contains\"),\n jsonProperty(\"value\", \".xls\")\n ))\n )))\n .build())\n .build())\n .browserVariables( \n SyntheticsTestBrowserVariableArgs.builder()\n .type(\"text\")\n .name(\"MY_PATTERN_VAR\")\n .pattern(\"{{numeric(3)}}\")\n .example(\"597\")\n .build(),\n SyntheticsTestBrowserVariableArgs.builder()\n .type(\"email\")\n .name(\"MY_EMAIL_VAR\")\n .pattern(\"jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\")\n .example(\"jd8-afe-ydv.4546132139@synthetics.dtdg.co\")\n .build(),\n SyntheticsTestBrowserVariableArgs.builder()\n .type(\"global\")\n .name(\"MY_GLOBAL_VAR\")\n .id(\"76636cd1-82e2-4aeb-9cfe-51366a8198a2\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(3600)\n .build())\n .build());\n\n // Example Usage (GRPC API behavior check test)\n // Create a new Datadog GRPC API test calling host example.org on port 443\n // targeting service `greeter.Greeter` with the method `SayHello`\n // and the message {\"name\": \"John\"}\n var testGrpcUnary = new SyntheticsTest(\"testGrpcUnary\", SyntheticsTestArgs.builder()\n .name(\"GRPC API behavior check test\")\n .type(\"api\")\n .subtype(\"grpc\")\n .status(\"live\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .callType(\"unary\")\n .service(\"greeter.Greeter\")\n .method(\"SayHello\")\n .message(\"{\\\"name\\\": \\\"John\\\"}\")\n .plainProtoFile(\"\"\"\nsyntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n \"\"\")\n .build())\n .requestMetadata(Map.of(\"header\", \"value\"))\n .assertions( \n SyntheticsTestAssertionArgs.builder()\n .type(\"responseTime\")\n .operator(\"lessThan\")\n .target(\"2000\")\n .build(),\n SyntheticsTestAssertionArgs.builder()\n .operator(\"is\")\n .type(\"grpcHealthcheckStatus\")\n .target(1)\n .build(),\n SyntheticsTestAssertionArgs.builder()\n .operator(\"is\")\n .type(\"grpcProto\")\n .target(\"proto target\")\n .build(),\n SyntheticsTestAssertionArgs.builder()\n .operator(\"is\")\n .property(\"property\")\n .type(\"grpcMetadata\")\n .target(\"123\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .build())\n .build());\n\n // Example Usage (GRPC API health check test)\n // Create a new Datadog GRPC API test calling host example.org on port 443\n // testing the overall health of the service\n var testGrpcHealth = new SyntheticsTest(\"testGrpcHealth\", SyntheticsTestArgs.builder()\n .name(\"GRPC API health check test\")\n .type(\"api\")\n .subtype(\"grpc\")\n .status(\"live\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .callType(\"healthcheck\")\n .service(\"greeter.Greeter\")\n .build())\n .assertions( \n SyntheticsTestAssertionArgs.builder()\n .type(\"responseTime\")\n .operator(\"lessThan\")\n .target(\"2000\")\n .build(),\n SyntheticsTestAssertionArgs.builder()\n .operator(\"is\")\n .type(\"grpcHealthcheckStatus\")\n .target(1)\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Example Usage (Synthetics API test)\n # Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n testUptime:\n type: datadog:SyntheticsTest\n name: test_uptime\n properties:\n name: An Uptime test on example.org\n type: api\n subtype: http\n status: live\n message: Notify @pagerduty\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n method: GET\n url: https://www.example.org\n requestHeaders:\n Content-Type: application/json\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n optionsList:\n tickEvery: 900\n retry:\n count: 2\n interval: 300\n monitorOptions:\n renotifyInterval: 120\n # Example Usage (Authenticated API test)\n # Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n testApi:\n type: datadog:SyntheticsTest\n name: test_api\n properties:\n name: An API test on example.org\n type: api\n subtype: http\n status: live\n message: Notify @pagerduty\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n method: GET\n url: https://www.example.org\n requestHeaders:\n Content-Type: application/json\n Authentication: 'Token: 1234566789'\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n optionsList:\n tickEvery: 900\n retry:\n count: 2\n interval: 300\n monitorOptions:\n renotifyInterval: 120\n # Example Usage (Synthetics SSL test)\n # Create a new Datadog Synthetics API/SSL test on example.org\n testSsl:\n type: datadog:SyntheticsTest\n name: test_ssl\n properties:\n name: An API test on example.org\n type: api\n subtype: ssl\n status: live\n message: Notify @pagerduty\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n host: example.org\n port: '443'\n assertions:\n - type: certificate\n operator: isInMoreThan\n target: 30\n optionsList:\n tickEvery: 900\n acceptSelfSigned: true\n # Example Usage (Synthetics TCP test)\n # Create a new Datadog Synthetics API/TCP test on example.org\n testTcp:\n type: datadog:SyntheticsTest\n name: test_tcp\n properties:\n name: An API test on example.org\n type: api\n subtype: tcp\n status: live\n message: Notify @pagerduty\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n host: example.org\n port: '443'\n assertions:\n - type: responseTime\n operator: lessThan\n target: 2000\n configVariables:\n - type: global\n name: MY_GLOBAL_VAR\n id: 76636cd1-82e2-4aeb-9cfe-51366a8198a2\n optionsList:\n tickEvery: 900\n # Example Usage (Synthetics DNS test)\n # Create a new Datadog Synthetics API/DNS test on example.org\n testDns:\n type: datadog:SyntheticsTest\n name: test_dns\n properties:\n name: An API test on example.org\n type: api\n subtype: dns\n status: live\n message: Notify @pagerduty\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n host: example.org\n assertions:\n - type: recordSome\n operator: is\n property: A\n target: 0.0.0.0\n optionsList:\n tickEvery: 900\n # Example Usage (Synthetics Multistep API test)\n # Create a new Datadog Synthetics Multistep API test\n testMultiStep:\n type: datadog:SyntheticsTest\n name: test_multi_step\n properties:\n name: Multistep API test\n type: api\n subtype: multi\n status: live\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n apiSteps:\n - name: An API test on example.org\n subtype: http\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n requestDefinition:\n method: GET\n url: https://www.example.org\n requestHeaders:\n Content-Type: application/json\n Authentication: 'Token: 1234566789'\n - name: An API test on example.org\n subtype: http\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n requestDefinition:\n method: GET\n url: http://example.org\n - name: A gRPC health check on example.org\n subtype: grpc\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n requestDefinition:\n host: example.org\n port: '443'\n callType: healthcheck\n service: greeter.Greeter\n - name: A gRPC behavior check on example.org\n subtype: grpc\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n requestDefinition:\n host: example.org\n port: '443'\n callType: unary\n service: greeter.Greeter\n method: SayHello\n message: '{\"name\": \"John\"}'\n plainProtoFile: |\n syntax = \"proto3\";\n\n package greeter;\n\n // The greeting service definition.\n service Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n }\n\n // The request message containing the user's name.\n message HelloRequest {\n string name = 1;\n }\n\n // The response message containing the greetings\n message HelloReply {\n string message = 1;\n }\n optionsList:\n tickEvery: 900\n acceptSelfSigned: true\n # Example Usage (Synthetics Browser test)\n # Create a new Datadog Synthetics Browser test starting on https://www.example.org\n testBrowser:\n type: datadog:SyntheticsTest\n name: test_browser\n properties:\n name: A Browser test on example.org\n type: browser\n status: paused\n message: Notify @qa\n deviceIds:\n - laptop_large\n locations:\n - aws:eu-central-1\n tags: []\n requestDefinition:\n method: GET\n url: https://www.example.org\n browserSteps:\n - name: Check current url\n type: assertCurrentUrl\n params:\n check: contains\n value: datadoghq\n - name: Test a downloaded file\n type: assertFileDownload\n params:\n file:\n fn::toJSON:\n md5: abcdef1234567890\n sizeCheck:\n type: equals\n value: 1\n nameCheck:\n type: contains\n value: .xls\n browserVariables:\n - type: text\n name: MY_PATTERN_VAR\n pattern: '{{numeric(3)}}'\n example: '597'\n - type: email\n name: MY_EMAIL_VAR\n pattern: jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\n example: jd8-afe-ydv.4546132139@synthetics.dtdg.co\n - type: global\n name: MY_GLOBAL_VAR\n id: 76636cd1-82e2-4aeb-9cfe-51366a8198a2\n optionsList:\n tickEvery: 3600\n # Example Usage (GRPC API behavior check test)\n # Create a new Datadog GRPC API test calling host example.org on port 443\n # targeting service `greeter.Greeter` with the method `SayHello`\n # and the message {\"name\": \"John\"}\n testGrpcUnary:\n type: datadog:SyntheticsTest\n name: test_grpc_unary\n properties:\n name: GRPC API behavior check test\n type: api\n subtype: grpc\n status: live\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n host: example.org\n port: '443'\n callType: unary\n service: greeter.Greeter\n method: SayHello\n message: '{\"name\": \"John\"}'\n plainProtoFile: |\n syntax = \"proto3\";\n\n package greeter;\n\n // The greeting service definition.\n service Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n }\n\n // The request message containing the user's name.\n message HelloRequest {\n string name = 1;\n }\n\n // The response message containing the greetings\n message HelloReply {\n string message = 1;\n }\n requestMetadata:\n header: value\n assertions:\n - type: responseTime\n operator: lessThan\n target: '2000'\n - operator: is\n type: grpcHealthcheckStatus\n target: 1\n - operator: is\n type: grpcProto\n target: proto target\n - operator: is\n property: property\n type: grpcMetadata\n target: '123'\n optionsList:\n tickEvery: 900\n # Example Usage (GRPC API health check test)\n # Create a new Datadog GRPC API test calling host example.org on port 443\n # testing the overall health of the service\n testGrpcHealth:\n type: datadog:SyntheticsTest\n name: test_grpc_health\n properties:\n name: GRPC API health check test\n type: api\n subtype: grpc\n status: live\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n host: example.org\n port: '443'\n callType: healthcheck\n service: greeter.Greeter\n assertions:\n - type: responseTime\n operator: lessThan\n target: '2000'\n - operator: is\n type: grpcHealthcheckStatus\n target: 1\n optionsList:\n tickEvery: 900\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSynthetics tests can be imported using their public string ID, e.g.\n\n```sh\n$ pulumi import datadog:index/syntheticsTest:SyntheticsTest fizz abc-123-xyz\n```\n\n", + "description": "Provides a Datadog synthetics test resource. This can be used to create and manage Datadog synthetics test.\n\n#### *Warning*\nStarting from version 3.1.0+, the direct usage of global variables in the configuration is deprecated, in favor of\nlocal variables of type `global`. As an example, if you were previously using `{{ GLOBAL_VAR }}` directly in your\nconfiguration, add a `config_variable` of type `global` with the `id` matching the `id` of the global variable `GLOBAL_VAR`, which can be found in the Synthetics UI or from the output of the `datadog.SyntheticsGlobalVariable` resource. The name can be chosen freely. \n\nIn practice, it means going from (simplified configuration):\n\n```\nurl = https://{{ GLOBAL_VAR }}\n```\n\nto\n\n```\nconfig_variable {\n name = \"LOCAL_VAR\"\n id = [your_global_variable_id]\n type = \"global\"\n}\n```\n\nwhich you can now use in your request definition:\n```\nurl = https://{{ LOCAL_VAR }}\n```\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as datadog from \"@pulumi/datadog\";\n\n// Example Usage (Synthetics API test)\n// Create a new Datadog Synthetics API/HTTP test on https://www.example.org\nconst testUptime = new datadog.SyntheticsTest(\"test_uptime\", {\n name: \"An Uptime test on example.org\",\n type: \"api\",\n subtype: \"http\",\n status: \"live\",\n message: \"Notify @pagerduty\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n method: \"GET\",\n url: \"https://www.example.org\",\n },\n requestHeaders: {\n \"Content-Type\": \"application/json\",\n },\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n optionsList: {\n tickEvery: 900,\n retry: {\n count: 2,\n interval: 300,\n },\n monitorOptions: {\n renotifyInterval: 120,\n },\n },\n});\n// Example Usage (Authenticated API test)\n// Create a new Datadog Synthetics API/HTTP test on https://www.example.org\nconst testApi = new datadog.SyntheticsTest(\"test_api\", {\n name: \"An API test on example.org\",\n type: \"api\",\n subtype: \"http\",\n status: \"live\",\n message: \"Notify @pagerduty\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n method: \"GET\",\n url: \"https://www.example.org\",\n },\n requestHeaders: {\n \"Content-Type\": \"application/json\",\n Authentication: \"Token: 1234566789\",\n },\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n optionsList: {\n tickEvery: 900,\n retry: {\n count: 2,\n interval: 300,\n },\n monitorOptions: {\n renotifyInterval: 120,\n },\n },\n});\n// Example Usage (Synthetics SSL test)\n// Create a new Datadog Synthetics API/SSL test on example.org\nconst testSsl = new datadog.SyntheticsTest(\"test_ssl\", {\n name: \"An API test on example.org\",\n type: \"api\",\n subtype: \"ssl\",\n status: \"live\",\n message: \"Notify @pagerduty\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n },\n assertions: [{\n type: \"certificate\",\n operator: \"isInMoreThan\",\n target: \"30\",\n }],\n optionsList: {\n tickEvery: 900,\n acceptSelfSigned: true,\n },\n});\n// Example Usage (Synthetics TCP test)\n// Create a new Datadog Synthetics API/TCP test on example.org\nconst testTcp = new datadog.SyntheticsTest(\"test_tcp\", {\n name: \"An API test on example.org\",\n type: \"api\",\n subtype: \"tcp\",\n status: \"live\",\n message: \"Notify @pagerduty\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n },\n assertions: [{\n type: \"responseTime\",\n operator: \"lessThan\",\n target: \"2000\",\n }],\n configVariables: [{\n type: \"global\",\n name: \"MY_GLOBAL_VAR\",\n id: \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n }],\n optionsList: {\n tickEvery: 900,\n },\n});\n// Example Usage (Synthetics DNS test)\n// Create a new Datadog Synthetics API/DNS test on example.org\nconst testDns = new datadog.SyntheticsTest(\"test_dns\", {\n name: \"An API test on example.org\",\n type: \"api\",\n subtype: \"dns\",\n status: \"live\",\n message: \"Notify @pagerduty\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n host: \"example.org\",\n },\n assertions: [{\n type: \"recordSome\",\n operator: \"is\",\n property: \"A\",\n target: \"0.0.0.0\",\n }],\n optionsList: {\n tickEvery: 900,\n },\n});\n// Example Usage (Synthetics Multistep API test)\n// Create a new Datadog Synthetics Multistep API test\nconst testMultiStep = new datadog.SyntheticsTest(\"test_multi_step\", {\n name: \"Multistep API test\",\n type: \"api\",\n subtype: \"multi\",\n status: \"live\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n apiSteps: [\n {\n name: \"An API test on example.org\",\n subtype: \"http\",\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n requestDefinition: {\n method: \"GET\",\n url: \"https://www.example.org\",\n },\n requestHeaders: {\n \"Content-Type\": \"application/json\",\n Authentication: \"Token: 1234566789\",\n },\n },\n {\n name: \"An API test on example.org\",\n subtype: \"http\",\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n requestDefinition: {\n method: \"GET\",\n url: \"http://example.org\",\n },\n },\n {\n name: \"A gRPC health check on example.org\",\n subtype: \"grpc\",\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n callType: \"healthcheck\",\n service: \"greeter.Greeter\",\n },\n },\n {\n name: \"A gRPC behavior check on example.org\",\n subtype: \"grpc\",\n assertions: [{\n type: \"statusCode\",\n operator: \"is\",\n target: \"200\",\n }],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n callType: \"unary\",\n service: \"greeter.Greeter\",\n method: \"SayHello\",\n message: \"{\\\"name\\\": \\\"John\\\"}\",\n plainProtoFile: `syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n`,\n },\n },\n ],\n optionsList: {\n tickEvery: 900,\n acceptSelfSigned: true,\n },\n});\n// Example Usage (Synthetics Browser test)\n// Create a new Datadog Synthetics Browser test starting on https://www.example.org\nconst testBrowser = new datadog.SyntheticsTest(\"test_browser\", {\n name: \"A Browser test on example.org\",\n type: \"browser\",\n status: \"paused\",\n message: \"Notify @qa\",\n deviceIds: [\"laptop_large\"],\n locations: [\"aws:eu-central-1\"],\n tags: [],\n requestDefinition: {\n method: \"GET\",\n url: \"https://www.example.org\",\n },\n browserSteps: [\n {\n name: \"Check current url\",\n type: \"assertCurrentUrl\",\n params: {\n check: \"contains\",\n value: \"datadoghq\",\n },\n },\n {\n name: \"Test a downloaded file\",\n type: \"assertFileDownload\",\n params: {\n file: JSON.stringify({\n md5: \"abcdef1234567890\",\n sizeCheck: {\n type: \"equals\",\n value: 1,\n },\n nameCheck: {\n type: \"contains\",\n value: \".xls\",\n },\n }),\n },\n },\n ],\n browserVariables: [\n {\n type: \"text\",\n name: \"MY_PATTERN_VAR\",\n pattern: \"{{numeric(3)}}\",\n example: \"597\",\n },\n {\n type: \"email\",\n name: \"MY_EMAIL_VAR\",\n pattern: \"jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\",\n example: \"jd8-afe-ydv.4546132139@synthetics.dtdg.co\",\n },\n {\n type: \"global\",\n name: \"MY_GLOBAL_VAR\",\n id: \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n },\n ],\n optionsList: {\n tickEvery: 3600,\n },\n});\n// Example Usage (GRPC API behavior check test)\n// Create a new Datadog GRPC API test calling host example.org on port 443\n// targeting service `greeter.Greeter` with the method `SayHello`\n// and the message {\"name\": \"John\"}\nconst testGrpcUnary = new datadog.SyntheticsTest(\"test_grpc_unary\", {\n name: \"GRPC API behavior check test\",\n type: \"api\",\n subtype: \"grpc\",\n status: \"live\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n callType: \"unary\",\n service: \"greeter.Greeter\",\n method: \"SayHello\",\n message: \"{\\\"name\\\": \\\"John\\\"}\",\n plainProtoFile: `syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n`,\n },\n requestMetadata: {\n header: \"value\",\n },\n assertions: [\n {\n type: \"responseTime\",\n operator: \"lessThan\",\n target: \"2000\",\n },\n {\n operator: \"is\",\n type: \"grpcHealthcheckStatus\",\n target: \"1\",\n },\n {\n operator: \"is\",\n type: \"grpcProto\",\n target: \"proto target\",\n },\n {\n operator: \"is\",\n property: \"property\",\n type: \"grpcMetadata\",\n target: \"123\",\n },\n ],\n optionsList: {\n tickEvery: 900,\n },\n});\n// Example Usage (GRPC API health check test)\n// Create a new Datadog GRPC API test calling host example.org on port 443\n// testing the overall health of the service\nconst testGrpcHealth = new datadog.SyntheticsTest(\"test_grpc_health\", {\n name: \"GRPC API health check test\",\n type: \"api\",\n subtype: \"grpc\",\n status: \"live\",\n locations: [\"aws:eu-central-1\"],\n tags: [\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n requestDefinition: {\n host: \"example.org\",\n port: \"443\",\n callType: \"healthcheck\",\n service: \"greeter.Greeter\",\n },\n assertions: [\n {\n type: \"responseTime\",\n operator: \"lessThan\",\n target: \"2000\",\n },\n {\n operator: \"is\",\n type: \"grpcHealthcheckStatus\",\n target: \"1\",\n },\n ],\n optionsList: {\n tickEvery: 900,\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_datadog as datadog\n\n# Example Usage (Synthetics API test)\n# Create a new Datadog Synthetics API/HTTP test on https://www.example.org\ntest_uptime = datadog.SyntheticsTest(\"test_uptime\",\n name=\"An Uptime test on example.org\",\n type=\"api\",\n subtype=\"http\",\n status=\"live\",\n message=\"Notify @pagerduty\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"method\": \"GET\",\n \"url\": \"https://www.example.org\",\n },\n request_headers={\n \"Content-Type\": \"application/json\",\n },\n assertions=[{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n options_list={\n \"tick_every\": 900,\n \"retry\": {\n \"count\": 2,\n \"interval\": 300,\n },\n \"monitor_options\": {\n \"renotify_interval\": 120,\n },\n })\n# Example Usage (Authenticated API test)\n# Create a new Datadog Synthetics API/HTTP test on https://www.example.org\ntest_api = datadog.SyntheticsTest(\"test_api\",\n name=\"An API test on example.org\",\n type=\"api\",\n subtype=\"http\",\n status=\"live\",\n message=\"Notify @pagerduty\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"method\": \"GET\",\n \"url\": \"https://www.example.org\",\n },\n request_headers={\n \"Content-Type\": \"application/json\",\n \"Authentication\": \"Token: 1234566789\",\n },\n assertions=[{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n options_list={\n \"tick_every\": 900,\n \"retry\": {\n \"count\": 2,\n \"interval\": 300,\n },\n \"monitor_options\": {\n \"renotify_interval\": 120,\n },\n })\n# Example Usage (Synthetics SSL test)\n# Create a new Datadog Synthetics API/SSL test on example.org\ntest_ssl = datadog.SyntheticsTest(\"test_ssl\",\n name=\"An API test on example.org\",\n type=\"api\",\n subtype=\"ssl\",\n status=\"live\",\n message=\"Notify @pagerduty\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"host\": \"example.org\",\n \"port\": \"443\",\n },\n assertions=[{\n \"type\": \"certificate\",\n \"operator\": \"isInMoreThan\",\n \"target\": \"30\",\n }],\n options_list={\n \"tick_every\": 900,\n \"accept_self_signed\": True,\n })\n# Example Usage (Synthetics TCP test)\n# Create a new Datadog Synthetics API/TCP test on example.org\ntest_tcp = datadog.SyntheticsTest(\"test_tcp\",\n name=\"An API test on example.org\",\n type=\"api\",\n subtype=\"tcp\",\n status=\"live\",\n message=\"Notify @pagerduty\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"host\": \"example.org\",\n \"port\": \"443\",\n },\n assertions=[{\n \"type\": \"responseTime\",\n \"operator\": \"lessThan\",\n \"target\": \"2000\",\n }],\n config_variables=[{\n \"type\": \"global\",\n \"name\": \"MY_GLOBAL_VAR\",\n \"id\": \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n }],\n options_list={\n \"tick_every\": 900,\n })\n# Example Usage (Synthetics DNS test)\n# Create a new Datadog Synthetics API/DNS test on example.org\ntest_dns = datadog.SyntheticsTest(\"test_dns\",\n name=\"An API test on example.org\",\n type=\"api\",\n subtype=\"dns\",\n status=\"live\",\n message=\"Notify @pagerduty\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"host\": \"example.org\",\n },\n assertions=[{\n \"type\": \"recordSome\",\n \"operator\": \"is\",\n \"property\": \"A\",\n \"target\": \"0.0.0.0\",\n }],\n options_list={\n \"tick_every\": 900,\n })\n# Example Usage (Synthetics Multistep API test)\n# Create a new Datadog Synthetics Multistep API test\ntest_multi_step = datadog.SyntheticsTest(\"test_multi_step\",\n name=\"Multistep API test\",\n type=\"api\",\n subtype=\"multi\",\n status=\"live\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n api_steps=[\n {\n \"name\": \"An API test on example.org\",\n \"subtype\": \"http\",\n \"assertions\": [{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n \"request_definition\": {\n \"method\": \"GET\",\n \"url\": \"https://www.example.org\",\n },\n \"request_headers\": {\n \"Content-Type\": \"application/json\",\n \"Authentication\": \"Token: 1234566789\",\n },\n },\n {\n \"name\": \"An API test on example.org\",\n \"subtype\": \"http\",\n \"assertions\": [{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n \"request_definition\": {\n \"method\": \"GET\",\n \"url\": \"http://example.org\",\n },\n },\n {\n \"name\": \"A gRPC health check on example.org\",\n \"subtype\": \"grpc\",\n \"assertions\": [{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n \"request_definition\": {\n \"host\": \"example.org\",\n \"port\": \"443\",\n \"call_type\": \"healthcheck\",\n \"service\": \"greeter.Greeter\",\n },\n },\n {\n \"name\": \"A gRPC behavior check on example.org\",\n \"subtype\": \"grpc\",\n \"assertions\": [{\n \"type\": \"statusCode\",\n \"operator\": \"is\",\n \"target\": \"200\",\n }],\n \"request_definition\": {\n \"host\": \"example.org\",\n \"port\": \"443\",\n \"call_type\": \"unary\",\n \"service\": \"greeter.Greeter\",\n \"method\": \"SayHello\",\n \"message\": \"{\\\"name\\\": \\\"John\\\"}\",\n \"plain_proto_file\": \"\"\"syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n\"\"\",\n },\n },\n ],\n options_list={\n \"tick_every\": 900,\n \"accept_self_signed\": True,\n })\n# Example Usage (Synthetics Browser test)\n# Create a new Datadog Synthetics Browser test starting on https://www.example.org\ntest_browser = datadog.SyntheticsTest(\"test_browser\",\n name=\"A Browser test on example.org\",\n type=\"browser\",\n status=\"paused\",\n message=\"Notify @qa\",\n device_ids=[\"laptop_large\"],\n locations=[\"aws:eu-central-1\"],\n tags=[],\n request_definition={\n \"method\": \"GET\",\n \"url\": \"https://www.example.org\",\n },\n browser_steps=[\n {\n \"name\": \"Check current url\",\n \"type\": \"assertCurrentUrl\",\n \"params\": {\n \"check\": \"contains\",\n \"value\": \"datadoghq\",\n },\n },\n {\n \"name\": \"Test a downloaded file\",\n \"type\": \"assertFileDownload\",\n \"params\": {\n \"file\": json.dumps({\n \"md5\": \"abcdef1234567890\",\n \"sizeCheck\": {\n \"type\": \"equals\",\n \"value\": 1,\n },\n \"nameCheck\": {\n \"type\": \"contains\",\n \"value\": \".xls\",\n },\n }),\n },\n },\n ],\n browser_variables=[\n {\n \"type\": \"text\",\n \"name\": \"MY_PATTERN_VAR\",\n \"pattern\": \"{{numeric(3)}}\",\n \"example\": \"597\",\n },\n {\n \"type\": \"email\",\n \"name\": \"MY_EMAIL_VAR\",\n \"pattern\": \"jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\",\n \"example\": \"jd8-afe-ydv.4546132139@synthetics.dtdg.co\",\n },\n {\n \"type\": \"global\",\n \"name\": \"MY_GLOBAL_VAR\",\n \"id\": \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n },\n ],\n options_list={\n \"tick_every\": 3600,\n })\n# Example Usage (GRPC API behavior check test)\n# Create a new Datadog GRPC API test calling host example.org on port 443\n# targeting service `greeter.Greeter` with the method `SayHello`\n# and the message {\"name\": \"John\"}\ntest_grpc_unary = datadog.SyntheticsTest(\"test_grpc_unary\",\n name=\"GRPC API behavior check test\",\n type=\"api\",\n subtype=\"grpc\",\n status=\"live\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"host\": \"example.org\",\n \"port\": \"443\",\n \"call_type\": \"unary\",\n \"service\": \"greeter.Greeter\",\n \"method\": \"SayHello\",\n \"message\": \"{\\\"name\\\": \\\"John\\\"}\",\n \"plain_proto_file\": \"\"\"syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n\"\"\",\n },\n request_metadata={\n \"header\": \"value\",\n },\n assertions=[\n {\n \"type\": \"responseTime\",\n \"operator\": \"lessThan\",\n \"target\": \"2000\",\n },\n {\n \"operator\": \"is\",\n \"type\": \"grpcHealthcheckStatus\",\n \"target\": \"1\",\n },\n {\n \"operator\": \"is\",\n \"type\": \"grpcProto\",\n \"target\": \"proto target\",\n },\n {\n \"operator\": \"is\",\n \"property\": \"property\",\n \"type\": \"grpcMetadata\",\n \"target\": \"123\",\n },\n ],\n options_list={\n \"tick_every\": 900,\n })\n# Example Usage (GRPC API health check test)\n# Create a new Datadog GRPC API test calling host example.org on port 443\n# testing the overall health of the service\ntest_grpc_health = datadog.SyntheticsTest(\"test_grpc_health\",\n name=\"GRPC API health check test\",\n type=\"api\",\n subtype=\"grpc\",\n status=\"live\",\n locations=[\"aws:eu-central-1\"],\n tags=[\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n ],\n request_definition={\n \"host\": \"example.org\",\n \"port\": \"443\",\n \"call_type\": \"healthcheck\",\n \"service\": \"greeter.Greeter\",\n },\n assertions=[\n {\n \"type\": \"responseTime\",\n \"operator\": \"lessThan\",\n \"target\": \"2000\",\n },\n {\n \"operator\": \"is\",\n \"type\": \"grpcHealthcheckStatus\",\n \"target\": \"1\",\n },\n ],\n options_list={\n \"tick_every\": 900,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Datadog = Pulumi.Datadog;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Example Usage (Synthetics API test)\n // Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n var testUptime = new Datadog.SyntheticsTest(\"test_uptime\", new()\n {\n Name = \"An Uptime test on example.org\",\n Type = \"api\",\n Subtype = \"http\",\n Status = \"live\",\n Message = \"Notify @pagerduty\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Method = \"GET\",\n Url = \"https://www.example.org\",\n },\n RequestHeaders = \n {\n { \"Content-Type\", \"application/json\" },\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n Retry = new Datadog.Inputs.SyntheticsTestOptionsListRetryArgs\n {\n Count = 2,\n Interval = 300,\n },\n MonitorOptions = new Datadog.Inputs.SyntheticsTestOptionsListMonitorOptionsArgs\n {\n RenotifyInterval = 120,\n },\n },\n });\n\n // Example Usage (Authenticated API test)\n // Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n var testApi = new Datadog.SyntheticsTest(\"test_api\", new()\n {\n Name = \"An API test on example.org\",\n Type = \"api\",\n Subtype = \"http\",\n Status = \"live\",\n Message = \"Notify @pagerduty\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Method = \"GET\",\n Url = \"https://www.example.org\",\n },\n RequestHeaders = \n {\n { \"Content-Type\", \"application/json\" },\n { \"Authentication\", \"Token: 1234566789\" },\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n Retry = new Datadog.Inputs.SyntheticsTestOptionsListRetryArgs\n {\n Count = 2,\n Interval = 300,\n },\n MonitorOptions = new Datadog.Inputs.SyntheticsTestOptionsListMonitorOptionsArgs\n {\n RenotifyInterval = 120,\n },\n },\n });\n\n // Example Usage (Synthetics SSL test)\n // Create a new Datadog Synthetics API/SSL test on example.org\n var testSsl = new Datadog.SyntheticsTest(\"test_ssl\", new()\n {\n Name = \"An API test on example.org\",\n Type = \"api\",\n Subtype = \"ssl\",\n Status = \"live\",\n Message = \"Notify @pagerduty\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"certificate\",\n Operator = \"isInMoreThan\",\n Target = \"30\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n AcceptSelfSigned = true,\n },\n });\n\n // Example Usage (Synthetics TCP test)\n // Create a new Datadog Synthetics API/TCP test on example.org\n var testTcp = new Datadog.SyntheticsTest(\"test_tcp\", new()\n {\n Name = \"An API test on example.org\",\n Type = \"api\",\n Subtype = \"tcp\",\n Status = \"live\",\n Message = \"Notify @pagerduty\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"responseTime\",\n Operator = \"lessThan\",\n Target = \"2000\",\n },\n },\n ConfigVariables = new[]\n {\n new Datadog.Inputs.SyntheticsTestConfigVariableArgs\n {\n Type = \"global\",\n Name = \"MY_GLOBAL_VAR\",\n Id = \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n },\n });\n\n // Example Usage (Synthetics DNS test)\n // Create a new Datadog Synthetics API/DNS test on example.org\n var testDns = new Datadog.SyntheticsTest(\"test_dns\", new()\n {\n Name = \"An API test on example.org\",\n Type = \"api\",\n Subtype = \"dns\",\n Status = \"live\",\n Message = \"Notify @pagerduty\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Host = \"example.org\",\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"recordSome\",\n Operator = \"is\",\n Property = \"A\",\n Target = \"0.0.0.0\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n },\n });\n\n // Example Usage (Synthetics Multistep API test)\n // Create a new Datadog Synthetics Multistep API test\n var testMultiStep = new Datadog.SyntheticsTest(\"test_multi_step\", new()\n {\n Name = \"Multistep API test\",\n Type = \"api\",\n Subtype = \"multi\",\n Status = \"live\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n ApiSteps = new[]\n {\n new Datadog.Inputs.SyntheticsTestApiStepArgs\n {\n Name = \"An API test on example.org\",\n Subtype = \"http\",\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs\n {\n Method = \"GET\",\n Url = \"https://www.example.org\",\n },\n RequestHeaders = \n {\n { \"Content-Type\", \"application/json\" },\n { \"Authentication\", \"Token: 1234566789\" },\n },\n },\n new Datadog.Inputs.SyntheticsTestApiStepArgs\n {\n Name = \"An API test on example.org\",\n Subtype = \"http\",\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs\n {\n Method = \"GET\",\n Url = \"http://example.org\",\n },\n },\n new Datadog.Inputs.SyntheticsTestApiStepArgs\n {\n Name = \"A gRPC health check on example.org\",\n Subtype = \"grpc\",\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n CallType = \"healthcheck\",\n Service = \"greeter.Greeter\",\n },\n },\n new Datadog.Inputs.SyntheticsTestApiStepArgs\n {\n Name = \"A gRPC behavior check on example.org\",\n Subtype = \"grpc\",\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs\n {\n Type = \"statusCode\",\n Operator = \"is\",\n Target = \"200\",\n },\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n CallType = \"unary\",\n Service = \"greeter.Greeter\",\n Method = \"SayHello\",\n Message = \"{\\\"name\\\": \\\"John\\\"}\",\n PlainProtoFile = @\"syntax = \"\"proto3\"\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n\",\n },\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n AcceptSelfSigned = true,\n },\n });\n\n // Example Usage (Synthetics Browser test)\n // Create a new Datadog Synthetics Browser test starting on https://www.example.org\n var testBrowser = new Datadog.SyntheticsTest(\"test_browser\", new()\n {\n Name = \"A Browser test on example.org\",\n Type = \"browser\",\n Status = \"paused\",\n Message = \"Notify @qa\",\n DeviceIds = new[]\n {\n \"laptop_large\",\n },\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[] {},\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Method = \"GET\",\n Url = \"https://www.example.org\",\n },\n BrowserSteps = new[]\n {\n new Datadog.Inputs.SyntheticsTestBrowserStepArgs\n {\n Name = \"Check current url\",\n Type = \"assertCurrentUrl\",\n Params = new Datadog.Inputs.SyntheticsTestBrowserStepParamsArgs\n {\n Check = \"contains\",\n Value = \"datadoghq\",\n },\n },\n new Datadog.Inputs.SyntheticsTestBrowserStepArgs\n {\n Name = \"Test a downloaded file\",\n Type = \"assertFileDownload\",\n Params = new Datadog.Inputs.SyntheticsTestBrowserStepParamsArgs\n {\n File = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"md5\"] = \"abcdef1234567890\",\n [\"sizeCheck\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"equals\",\n [\"value\"] = 1,\n },\n [\"nameCheck\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"contains\",\n [\"value\"] = \".xls\",\n },\n }),\n },\n },\n },\n BrowserVariables = new[]\n {\n new Datadog.Inputs.SyntheticsTestBrowserVariableArgs\n {\n Type = \"text\",\n Name = \"MY_PATTERN_VAR\",\n Pattern = \"{{numeric(3)}}\",\n Example = \"597\",\n },\n new Datadog.Inputs.SyntheticsTestBrowserVariableArgs\n {\n Type = \"email\",\n Name = \"MY_EMAIL_VAR\",\n Pattern = \"jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\",\n Example = \"jd8-afe-ydv.4546132139@synthetics.dtdg.co\",\n },\n new Datadog.Inputs.SyntheticsTestBrowserVariableArgs\n {\n Type = \"global\",\n Name = \"MY_GLOBAL_VAR\",\n Id = \"76636cd1-82e2-4aeb-9cfe-51366a8198a2\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 3600,\n },\n });\n\n // Example Usage (GRPC API behavior check test)\n // Create a new Datadog GRPC API test calling host example.org on port 443\n // targeting service `greeter.Greeter` with the method `SayHello`\n // and the message {\"name\": \"John\"}\n var testGrpcUnary = new Datadog.SyntheticsTest(\"test_grpc_unary\", new()\n {\n Name = \"GRPC API behavior check test\",\n Type = \"api\",\n Subtype = \"grpc\",\n Status = \"live\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n CallType = \"unary\",\n Service = \"greeter.Greeter\",\n Method = \"SayHello\",\n Message = \"{\\\"name\\\": \\\"John\\\"}\",\n PlainProtoFile = @\"syntax = \"\"proto3\"\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n\",\n },\n RequestMetadata = \n {\n { \"header\", \"value\" },\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"responseTime\",\n Operator = \"lessThan\",\n Target = \"2000\",\n },\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Operator = \"is\",\n Type = \"grpcHealthcheckStatus\",\n Target = \"1\",\n },\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Operator = \"is\",\n Type = \"grpcProto\",\n Target = \"proto target\",\n },\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Operator = \"is\",\n Property = \"property\",\n Type = \"grpcMetadata\",\n Target = \"123\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n },\n });\n\n // Example Usage (GRPC API health check test)\n // Create a new Datadog GRPC API test calling host example.org on port 443\n // testing the overall health of the service\n var testGrpcHealth = new Datadog.SyntheticsTest(\"test_grpc_health\", new()\n {\n Name = \"GRPC API health check test\",\n Type = \"api\",\n Subtype = \"grpc\",\n Status = \"live\",\n Locations = new[]\n {\n \"aws:eu-central-1\",\n },\n Tags = new[]\n {\n \"foo:bar\",\n \"foo\",\n \"env:test\",\n },\n RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs\n {\n Host = \"example.org\",\n Port = \"443\",\n CallType = \"healthcheck\",\n Service = \"greeter.Greeter\",\n },\n Assertions = new[]\n {\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Type = \"responseTime\",\n Operator = \"lessThan\",\n Target = \"2000\",\n },\n new Datadog.Inputs.SyntheticsTestAssertionArgs\n {\n Operator = \"is\",\n Type = \"grpcHealthcheckStatus\",\n Target = \"1\",\n },\n },\n OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs\n {\n TickEvery = 900,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-datadog/sdk/v4/go/datadog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example Usage (Synthetics API test)\n\t\t// Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n\t\t_, err := datadog.NewSyntheticsTest(ctx, \"test_uptime\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"An Uptime test on example.org\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"http\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tMessage: pulumi.String(\"Notify @pagerduty\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\tUrl: pulumi.String(\"https://www.example.org\"),\n\t\t\t},\n\t\t\tRequestHeaders: pulumi.StringMap{\n\t\t\t\t\"Content-Type\": pulumi.String(\"application/json\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t\tRetry: \u0026datadog.SyntheticsTestOptionsListRetryArgs{\n\t\t\t\t\tCount: pulumi.Int(2),\n\t\t\t\t\tInterval: pulumi.Int(300),\n\t\t\t\t},\n\t\t\t\tMonitorOptions: \u0026datadog.SyntheticsTestOptionsListMonitorOptionsArgs{\n\t\t\t\t\tRenotifyInterval: pulumi.Int(120),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (Authenticated API test)\n\t\t// Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_api\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"http\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tMessage: pulumi.String(\"Notify @pagerduty\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\tUrl: pulumi.String(\"https://www.example.org\"),\n\t\t\t},\n\t\t\tRequestHeaders: pulumi.StringMap{\n\t\t\t\t\"Content-Type\": pulumi.String(\"application/json\"),\n\t\t\t\t\"Authentication\": pulumi.String(\"Token: 1234566789\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t\tRetry: \u0026datadog.SyntheticsTestOptionsListRetryArgs{\n\t\t\t\t\tCount: pulumi.Int(2),\n\t\t\t\t\tInterval: pulumi.Int(300),\n\t\t\t\t},\n\t\t\t\tMonitorOptions: \u0026datadog.SyntheticsTestOptionsListMonitorOptionsArgs{\n\t\t\t\t\tRenotifyInterval: pulumi.Int(120),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (Synthetics SSL test)\n\t\t// Create a new Datadog Synthetics API/SSL test on example.org\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_ssl\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"ssl\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tMessage: pulumi.String(\"Notify @pagerduty\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"certificate\"),\n\t\t\t\t\tOperator: pulumi.String(\"isInMoreThan\"),\n\t\t\t\t\tTarget: pulumi.String(\"30\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t\tAcceptSelfSigned: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (Synthetics TCP test)\n\t\t// Create a new Datadog Synthetics API/TCP test on example.org\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_tcp\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"tcp\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tMessage: pulumi.String(\"Notify @pagerduty\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"responseTime\"),\n\t\t\t\t\tOperator: pulumi.String(\"lessThan\"),\n\t\t\t\t\tTarget: pulumi.String(\"2000\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tConfigVariables: datadog.SyntheticsTestConfigVariableArray{\n\t\t\t\t\u0026datadog.SyntheticsTestConfigVariableArgs{\n\t\t\t\t\tType: pulumi.String(\"global\"),\n\t\t\t\t\tName: pulumi.String(\"MY_GLOBAL_VAR\"),\n\t\t\t\t\tId: pulumi.String(\"76636cd1-82e2-4aeb-9cfe-51366a8198a2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (Synthetics DNS test)\n\t\t// Create a new Datadog Synthetics API/DNS test on example.org\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_dns\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"dns\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tMessage: pulumi.String(\"Notify @pagerduty\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"recordSome\"),\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tProperty: pulumi.String(\"A\"),\n\t\t\t\t\tTarget: pulumi.String(\"0.0.0.0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (Synthetics Multistep API test)\n\t\t// Create a new Datadog Synthetics Multistep API test\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_multi_step\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"Multistep API test\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"multi\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tApiSteps: datadog.SyntheticsTestApiStepArray{\n\t\t\t\t\u0026datadog.SyntheticsTestApiStepArgs{\n\t\t\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\t\t\tSubtype: pulumi.String(\"http\"),\n\t\t\t\t\tAssertions: datadog.SyntheticsTestApiStepAssertionArray{\n\t\t\t\t\t\t\u0026datadog.SyntheticsTestApiStepAssertionArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestApiStepRequestDefinitionArgs{\n\t\t\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\t\t\tUrl: pulumi.String(\"https://www.example.org\"),\n\t\t\t\t\t},\n\t\t\t\t\tRequestHeaders: pulumi.StringMap{\n\t\t\t\t\t\t\"Content-Type\": pulumi.String(\"application/json\"),\n\t\t\t\t\t\t\"Authentication\": pulumi.String(\"Token: 1234566789\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestApiStepArgs{\n\t\t\t\t\tName: pulumi.String(\"An API test on example.org\"),\n\t\t\t\t\tSubtype: pulumi.String(\"http\"),\n\t\t\t\t\tAssertions: datadog.SyntheticsTestApiStepAssertionArray{\n\t\t\t\t\t\t\u0026datadog.SyntheticsTestApiStepAssertionArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestApiStepRequestDefinitionArgs{\n\t\t\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\t\t\tUrl: pulumi.String(\"http://example.org\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestApiStepArgs{\n\t\t\t\t\tName: pulumi.String(\"A gRPC health check on example.org\"),\n\t\t\t\t\tSubtype: pulumi.String(\"grpc\"),\n\t\t\t\t\tAssertions: datadog.SyntheticsTestApiStepAssertionArray{\n\t\t\t\t\t\t\u0026datadog.SyntheticsTestApiStepAssertionArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestApiStepRequestDefinitionArgs{\n\t\t\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\t\t\tCallType: pulumi.String(\"healthcheck\"),\n\t\t\t\t\t\tService: pulumi.String(\"greeter.Greeter\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestApiStepArgs{\n\t\t\t\t\tName: pulumi.String(\"A gRPC behavior check on example.org\"),\n\t\t\t\t\tSubtype: pulumi.String(\"grpc\"),\n\t\t\t\t\tAssertions: datadog.SyntheticsTestApiStepAssertionArray{\n\t\t\t\t\t\t\u0026datadog.SyntheticsTestApiStepAssertionArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"statusCode\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\t\t\tTarget: pulumi.String(\"200\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestApiStepRequestDefinitionArgs{\n\t\t\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\t\t\tCallType: pulumi.String(\"unary\"),\n\t\t\t\t\t\tService: pulumi.String(\"greeter.Greeter\"),\n\t\t\t\t\t\tMethod: pulumi.String(\"SayHello\"),\n\t\t\t\t\t\tMessage: pulumi.String(\"{\\\"name\\\": \\\"John\\\"}\"),\n\t\t\t\t\t\tPlainProtoFile: pulumi.String(`syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n`),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t\tAcceptSelfSigned: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"md5\": \"abcdef1234567890\",\n\t\t\t\"sizeCheck\": map[string]interface{}{\n\t\t\t\t\"type\": \"equals\",\n\t\t\t\t\"value\": 1,\n\t\t\t},\n\t\t\t\"nameCheck\": map[string]interface{}{\n\t\t\t\t\"type\": \"contains\",\n\t\t\t\t\"value\": \".xls\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t// Example Usage (Synthetics Browser test)\n\t\t// Create a new Datadog Synthetics Browser test starting on https://www.example.org\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_browser\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"A Browser test on example.org\"),\n\t\t\tType: pulumi.String(\"browser\"),\n\t\t\tStatus: pulumi.String(\"paused\"),\n\t\t\tMessage: pulumi.String(\"Notify @qa\"),\n\t\t\tDeviceIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"laptop_large\"),\n\t\t\t},\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\tUrl: pulumi.String(\"https://www.example.org\"),\n\t\t\t},\n\t\t\tBrowserSteps: datadog.SyntheticsTestBrowserStepArray{\n\t\t\t\t\u0026datadog.SyntheticsTestBrowserStepArgs{\n\t\t\t\t\tName: pulumi.String(\"Check current url\"),\n\t\t\t\t\tType: pulumi.String(\"assertCurrentUrl\"),\n\t\t\t\t\tParams: \u0026datadog.SyntheticsTestBrowserStepParamsArgs{\n\t\t\t\t\t\tCheck: pulumi.String(\"contains\"),\n\t\t\t\t\t\tValue: pulumi.String(\"datadoghq\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestBrowserStepArgs{\n\t\t\t\t\tName: pulumi.String(\"Test a downloaded file\"),\n\t\t\t\t\tType: pulumi.String(\"assertFileDownload\"),\n\t\t\t\t\tParams: \u0026datadog.SyntheticsTestBrowserStepParamsArgs{\n\t\t\t\t\t\tFile: pulumi.String(json0),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBrowserVariables: datadog.SyntheticsTestBrowserVariableArray{\n\t\t\t\t\u0026datadog.SyntheticsTestBrowserVariableArgs{\n\t\t\t\t\tType: pulumi.String(\"text\"),\n\t\t\t\t\tName: pulumi.String(\"MY_PATTERN_VAR\"),\n\t\t\t\t\tPattern: pulumi.String(\"{{numeric(3)}}\"),\n\t\t\t\t\tExample: pulumi.String(\"597\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestBrowserVariableArgs{\n\t\t\t\t\tType: pulumi.String(\"email\"),\n\t\t\t\t\tName: pulumi.String(\"MY_EMAIL_VAR\"),\n\t\t\t\t\tPattern: pulumi.String(\"jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\"),\n\t\t\t\t\tExample: pulumi.String(\"jd8-afe-ydv.4546132139@synthetics.dtdg.co\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestBrowserVariableArgs{\n\t\t\t\t\tType: pulumi.String(\"global\"),\n\t\t\t\t\tName: pulumi.String(\"MY_GLOBAL_VAR\"),\n\t\t\t\t\tId: pulumi.String(\"76636cd1-82e2-4aeb-9cfe-51366a8198a2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(3600),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (GRPC API behavior check test)\n\t\t// Create a new Datadog GRPC API test calling host example.org on port 443\n\t\t// targeting service `greeter.Greeter` with the method `SayHello`\n\t\t// and the message {\"name\": \"John\"}\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_grpc_unary\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"GRPC API behavior check test\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"grpc\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\tCallType: pulumi.String(\"unary\"),\n\t\t\t\tService: pulumi.String(\"greeter.Greeter\"),\n\t\t\t\tMethod: pulumi.String(\"SayHello\"),\n\t\t\t\tMessage: pulumi.String(\"{\\\"name\\\": \\\"John\\\"}\"),\n\t\t\t\tPlainProtoFile: pulumi.String(`syntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n`),\n\t\t\t},\n\t\t\tRequestMetadata: pulumi.StringMap{\n\t\t\t\t\"header\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"responseTime\"),\n\t\t\t\t\tOperator: pulumi.String(\"lessThan\"),\n\t\t\t\t\tTarget: pulumi.String(\"2000\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tType: pulumi.String(\"grpcHealthcheckStatus\"),\n\t\t\t\t\tTarget: pulumi.String(\"1\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tType: pulumi.String(\"grpcProto\"),\n\t\t\t\t\tTarget: pulumi.String(\"proto target\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tProperty: pulumi.String(\"property\"),\n\t\t\t\t\tType: pulumi.String(\"grpcMetadata\"),\n\t\t\t\t\tTarget: pulumi.String(\"123\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Example Usage (GRPC API health check test)\n\t\t// Create a new Datadog GRPC API test calling host example.org on port 443\n\t\t// testing the overall health of the service\n\t\t_, err = datadog.NewSyntheticsTest(ctx, \"test_grpc_health\", \u0026datadog.SyntheticsTestArgs{\n\t\t\tName: pulumi.String(\"GRPC API health check test\"),\n\t\t\tType: pulumi.String(\"api\"),\n\t\t\tSubtype: pulumi.String(\"grpc\"),\n\t\t\tStatus: pulumi.String(\"live\"),\n\t\t\tLocations: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aws:eu-central-1\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo:bar\"),\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"env:test\"),\n\t\t\t},\n\t\t\tRequestDefinition: \u0026datadog.SyntheticsTestRequestDefinitionArgs{\n\t\t\t\tHost: pulumi.String(\"example.org\"),\n\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\tCallType: pulumi.String(\"healthcheck\"),\n\t\t\t\tService: pulumi.String(\"greeter.Greeter\"),\n\t\t\t},\n\t\t\tAssertions: datadog.SyntheticsTestAssertionArray{\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tType: pulumi.String(\"responseTime\"),\n\t\t\t\t\tOperator: pulumi.String(\"lessThan\"),\n\t\t\t\t\tTarget: pulumi.String(\"2000\"),\n\t\t\t\t},\n\t\t\t\t\u0026datadog.SyntheticsTestAssertionArgs{\n\t\t\t\t\tOperator: pulumi.String(\"is\"),\n\t\t\t\t\tType: pulumi.String(\"grpcHealthcheckStatus\"),\n\t\t\t\t\tTarget: pulumi.String(\"1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOptionsList: \u0026datadog.SyntheticsTestOptionsListArgs{\n\t\t\t\tTickEvery: pulumi.Int(900),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.datadog.SyntheticsTest;\nimport com.pulumi.datadog.SyntheticsTestArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestRequestDefinitionArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestAssertionArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestOptionsListArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestOptionsListRetryArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestOptionsListMonitorOptionsArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestConfigVariableArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestApiStepArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestApiStepRequestDefinitionArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestBrowserStepArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestBrowserStepParamsArgs;\nimport com.pulumi.datadog.inputs.SyntheticsTestBrowserVariableArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Example Usage (Synthetics API test)\n // Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n var testUptime = new SyntheticsTest(\"testUptime\", SyntheticsTestArgs.builder()\n .name(\"An Uptime test on example.org\")\n .type(\"api\")\n .subtype(\"http\")\n .status(\"live\")\n .message(\"Notify @pagerduty\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .method(\"GET\")\n .url(\"https://www.example.org\")\n .build())\n .requestHeaders(Map.of(\"Content-Type\", \"application/json\"))\n .assertions(SyntheticsTestAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .retry(SyntheticsTestOptionsListRetryArgs.builder()\n .count(2)\n .interval(300)\n .build())\n .monitorOptions(SyntheticsTestOptionsListMonitorOptionsArgs.builder()\n .renotifyInterval(120)\n .build())\n .build())\n .build());\n\n // Example Usage (Authenticated API test)\n // Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n var testApi = new SyntheticsTest(\"testApi\", SyntheticsTestArgs.builder()\n .name(\"An API test on example.org\")\n .type(\"api\")\n .subtype(\"http\")\n .status(\"live\")\n .message(\"Notify @pagerduty\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .method(\"GET\")\n .url(\"https://www.example.org\")\n .build())\n .requestHeaders(Map.ofEntries(\n Map.entry(\"Content-Type\", \"application/json\"),\n Map.entry(\"Authentication\", \"Token: 1234566789\")\n ))\n .assertions(SyntheticsTestAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .retry(SyntheticsTestOptionsListRetryArgs.builder()\n .count(2)\n .interval(300)\n .build())\n .monitorOptions(SyntheticsTestOptionsListMonitorOptionsArgs.builder()\n .renotifyInterval(120)\n .build())\n .build())\n .build());\n\n // Example Usage (Synthetics SSL test)\n // Create a new Datadog Synthetics API/SSL test on example.org\n var testSsl = new SyntheticsTest(\"testSsl\", SyntheticsTestArgs.builder()\n .name(\"An API test on example.org\")\n .type(\"api\")\n .subtype(\"ssl\")\n .status(\"live\")\n .message(\"Notify @pagerduty\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .build())\n .assertions(SyntheticsTestAssertionArgs.builder()\n .type(\"certificate\")\n .operator(\"isInMoreThan\")\n .target(30)\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .acceptSelfSigned(true)\n .build())\n .build());\n\n // Example Usage (Synthetics TCP test)\n // Create a new Datadog Synthetics API/TCP test on example.org\n var testTcp = new SyntheticsTest(\"testTcp\", SyntheticsTestArgs.builder()\n .name(\"An API test on example.org\")\n .type(\"api\")\n .subtype(\"tcp\")\n .status(\"live\")\n .message(\"Notify @pagerduty\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .build())\n .assertions(SyntheticsTestAssertionArgs.builder()\n .type(\"responseTime\")\n .operator(\"lessThan\")\n .target(2000)\n .build())\n .configVariables(SyntheticsTestConfigVariableArgs.builder()\n .type(\"global\")\n .name(\"MY_GLOBAL_VAR\")\n .id(\"76636cd1-82e2-4aeb-9cfe-51366a8198a2\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .build())\n .build());\n\n // Example Usage (Synthetics DNS test)\n // Create a new Datadog Synthetics API/DNS test on example.org\n var testDns = new SyntheticsTest(\"testDns\", SyntheticsTestArgs.builder()\n .name(\"An API test on example.org\")\n .type(\"api\")\n .subtype(\"dns\")\n .status(\"live\")\n .message(\"Notify @pagerduty\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .build())\n .assertions(SyntheticsTestAssertionArgs.builder()\n .type(\"recordSome\")\n .operator(\"is\")\n .property(\"A\")\n .target(\"0.0.0.0\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .build())\n .build());\n\n // Example Usage (Synthetics Multistep API test)\n // Create a new Datadog Synthetics Multistep API test\n var testMultiStep = new SyntheticsTest(\"testMultiStep\", SyntheticsTestArgs.builder()\n .name(\"Multistep API test\")\n .type(\"api\")\n .subtype(\"multi\")\n .status(\"live\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .apiSteps( \n SyntheticsTestApiStepArgs.builder()\n .name(\"An API test on example.org\")\n .subtype(\"http\")\n .assertions(SyntheticsTestApiStepAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()\n .method(\"GET\")\n .url(\"https://www.example.org\")\n .build())\n .requestHeaders(Map.ofEntries(\n Map.entry(\"Content-Type\", \"application/json\"),\n Map.entry(\"Authentication\", \"Token: 1234566789\")\n ))\n .build(),\n SyntheticsTestApiStepArgs.builder()\n .name(\"An API test on example.org\")\n .subtype(\"http\")\n .assertions(SyntheticsTestApiStepAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()\n .method(\"GET\")\n .url(\"http://example.org\")\n .build())\n .build(),\n SyntheticsTestApiStepArgs.builder()\n .name(\"A gRPC health check on example.org\")\n .subtype(\"grpc\")\n .assertions(SyntheticsTestApiStepAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .callType(\"healthcheck\")\n .service(\"greeter.Greeter\")\n .build())\n .build(),\n SyntheticsTestApiStepArgs.builder()\n .name(\"A gRPC behavior check on example.org\")\n .subtype(\"grpc\")\n .assertions(SyntheticsTestApiStepAssertionArgs.builder()\n .type(\"statusCode\")\n .operator(\"is\")\n .target(\"200\")\n .build())\n .requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .callType(\"unary\")\n .service(\"greeter.Greeter\")\n .method(\"SayHello\")\n .message(\"{\\\"name\\\": \\\"John\\\"}\")\n .plainProtoFile(\"\"\"\nsyntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n \"\"\")\n .build())\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .acceptSelfSigned(true)\n .build())\n .build());\n\n // Example Usage (Synthetics Browser test)\n // Create a new Datadog Synthetics Browser test starting on https://www.example.org\n var testBrowser = new SyntheticsTest(\"testBrowser\", SyntheticsTestArgs.builder()\n .name(\"A Browser test on example.org\")\n .type(\"browser\")\n .status(\"paused\")\n .message(\"Notify @qa\")\n .deviceIds(\"laptop_large\")\n .locations(\"aws:eu-central-1\")\n .tags()\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .method(\"GET\")\n .url(\"https://www.example.org\")\n .build())\n .browserSteps( \n SyntheticsTestBrowserStepArgs.builder()\n .name(\"Check current url\")\n .type(\"assertCurrentUrl\")\n .params(SyntheticsTestBrowserStepParamsArgs.builder()\n .check(\"contains\")\n .value(\"datadoghq\")\n .build())\n .build(),\n SyntheticsTestBrowserStepArgs.builder()\n .name(\"Test a downloaded file\")\n .type(\"assertFileDownload\")\n .params(SyntheticsTestBrowserStepParamsArgs.builder()\n .file(serializeJson(\n jsonObject(\n jsonProperty(\"md5\", \"abcdef1234567890\"),\n jsonProperty(\"sizeCheck\", jsonObject(\n jsonProperty(\"type\", \"equals\"),\n jsonProperty(\"value\", 1)\n )),\n jsonProperty(\"nameCheck\", jsonObject(\n jsonProperty(\"type\", \"contains\"),\n jsonProperty(\"value\", \".xls\")\n ))\n )))\n .build())\n .build())\n .browserVariables( \n SyntheticsTestBrowserVariableArgs.builder()\n .type(\"text\")\n .name(\"MY_PATTERN_VAR\")\n .pattern(\"{{numeric(3)}}\")\n .example(\"597\")\n .build(),\n SyntheticsTestBrowserVariableArgs.builder()\n .type(\"email\")\n .name(\"MY_EMAIL_VAR\")\n .pattern(\"jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\")\n .example(\"jd8-afe-ydv.4546132139@synthetics.dtdg.co\")\n .build(),\n SyntheticsTestBrowserVariableArgs.builder()\n .type(\"global\")\n .name(\"MY_GLOBAL_VAR\")\n .id(\"76636cd1-82e2-4aeb-9cfe-51366a8198a2\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(3600)\n .build())\n .build());\n\n // Example Usage (GRPC API behavior check test)\n // Create a new Datadog GRPC API test calling host example.org on port 443\n // targeting service `greeter.Greeter` with the method `SayHello`\n // and the message {\"name\": \"John\"}\n var testGrpcUnary = new SyntheticsTest(\"testGrpcUnary\", SyntheticsTestArgs.builder()\n .name(\"GRPC API behavior check test\")\n .type(\"api\")\n .subtype(\"grpc\")\n .status(\"live\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .callType(\"unary\")\n .service(\"greeter.Greeter\")\n .method(\"SayHello\")\n .message(\"{\\\"name\\\": \\\"John\\\"}\")\n .plainProtoFile(\"\"\"\nsyntax = \"proto3\";\n\npackage greeter;\n\n// The greeting service definition.\nservice Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n}\n\n// The request message containing the user's name.\nmessage HelloRequest {\n string name = 1;\n}\n\n// The response message containing the greetings\nmessage HelloReply {\n string message = 1;\n}\n \"\"\")\n .build())\n .requestMetadata(Map.of(\"header\", \"value\"))\n .assertions( \n SyntheticsTestAssertionArgs.builder()\n .type(\"responseTime\")\n .operator(\"lessThan\")\n .target(\"2000\")\n .build(),\n SyntheticsTestAssertionArgs.builder()\n .operator(\"is\")\n .type(\"grpcHealthcheckStatus\")\n .target(1)\n .build(),\n SyntheticsTestAssertionArgs.builder()\n .operator(\"is\")\n .type(\"grpcProto\")\n .target(\"proto target\")\n .build(),\n SyntheticsTestAssertionArgs.builder()\n .operator(\"is\")\n .property(\"property\")\n .type(\"grpcMetadata\")\n .target(\"123\")\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .build())\n .build());\n\n // Example Usage (GRPC API health check test)\n // Create a new Datadog GRPC API test calling host example.org on port 443\n // testing the overall health of the service\n var testGrpcHealth = new SyntheticsTest(\"testGrpcHealth\", SyntheticsTestArgs.builder()\n .name(\"GRPC API health check test\")\n .type(\"api\")\n .subtype(\"grpc\")\n .status(\"live\")\n .locations(\"aws:eu-central-1\")\n .tags( \n \"foo:bar\",\n \"foo\",\n \"env:test\")\n .requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()\n .host(\"example.org\")\n .port(\"443\")\n .callType(\"healthcheck\")\n .service(\"greeter.Greeter\")\n .build())\n .assertions( \n SyntheticsTestAssertionArgs.builder()\n .type(\"responseTime\")\n .operator(\"lessThan\")\n .target(\"2000\")\n .build(),\n SyntheticsTestAssertionArgs.builder()\n .operator(\"is\")\n .type(\"grpcHealthcheckStatus\")\n .target(1)\n .build())\n .optionsList(SyntheticsTestOptionsListArgs.builder()\n .tickEvery(900)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Example Usage (Synthetics API test)\n # Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n testUptime:\n type: datadog:SyntheticsTest\n name: test_uptime\n properties:\n name: An Uptime test on example.org\n type: api\n subtype: http\n status: live\n message: Notify @pagerduty\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n method: GET\n url: https://www.example.org\n requestHeaders:\n Content-Type: application/json\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n optionsList:\n tickEvery: 900\n retry:\n count: 2\n interval: 300\n monitorOptions:\n renotifyInterval: 120\n # Example Usage (Authenticated API test)\n # Create a new Datadog Synthetics API/HTTP test on https://www.example.org\n testApi:\n type: datadog:SyntheticsTest\n name: test_api\n properties:\n name: An API test on example.org\n type: api\n subtype: http\n status: live\n message: Notify @pagerduty\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n method: GET\n url: https://www.example.org\n requestHeaders:\n Content-Type: application/json\n Authentication: 'Token: 1234566789'\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n optionsList:\n tickEvery: 900\n retry:\n count: 2\n interval: 300\n monitorOptions:\n renotifyInterval: 120\n # Example Usage (Synthetics SSL test)\n # Create a new Datadog Synthetics API/SSL test on example.org\n testSsl:\n type: datadog:SyntheticsTest\n name: test_ssl\n properties:\n name: An API test on example.org\n type: api\n subtype: ssl\n status: live\n message: Notify @pagerduty\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n host: example.org\n port: '443'\n assertions:\n - type: certificate\n operator: isInMoreThan\n target: 30\n optionsList:\n tickEvery: 900\n acceptSelfSigned: true\n # Example Usage (Synthetics TCP test)\n # Create a new Datadog Synthetics API/TCP test on example.org\n testTcp:\n type: datadog:SyntheticsTest\n name: test_tcp\n properties:\n name: An API test on example.org\n type: api\n subtype: tcp\n status: live\n message: Notify @pagerduty\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n host: example.org\n port: '443'\n assertions:\n - type: responseTime\n operator: lessThan\n target: 2000\n configVariables:\n - type: global\n name: MY_GLOBAL_VAR\n id: 76636cd1-82e2-4aeb-9cfe-51366a8198a2\n optionsList:\n tickEvery: 900\n # Example Usage (Synthetics DNS test)\n # Create a new Datadog Synthetics API/DNS test on example.org\n testDns:\n type: datadog:SyntheticsTest\n name: test_dns\n properties:\n name: An API test on example.org\n type: api\n subtype: dns\n status: live\n message: Notify @pagerduty\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n host: example.org\n assertions:\n - type: recordSome\n operator: is\n property: A\n target: 0.0.0.0\n optionsList:\n tickEvery: 900\n # Example Usage (Synthetics Multistep API test)\n # Create a new Datadog Synthetics Multistep API test\n testMultiStep:\n type: datadog:SyntheticsTest\n name: test_multi_step\n properties:\n name: Multistep API test\n type: api\n subtype: multi\n status: live\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n apiSteps:\n - name: An API test on example.org\n subtype: http\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n requestDefinition:\n method: GET\n url: https://www.example.org\n requestHeaders:\n Content-Type: application/json\n Authentication: 'Token: 1234566789'\n - name: An API test on example.org\n subtype: http\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n requestDefinition:\n method: GET\n url: http://example.org\n - name: A gRPC health check on example.org\n subtype: grpc\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n requestDefinition:\n host: example.org\n port: '443'\n callType: healthcheck\n service: greeter.Greeter\n - name: A gRPC behavior check on example.org\n subtype: grpc\n assertions:\n - type: statusCode\n operator: is\n target: '200'\n requestDefinition:\n host: example.org\n port: '443'\n callType: unary\n service: greeter.Greeter\n method: SayHello\n message: '{\"name\": \"John\"}'\n plainProtoFile: |\n syntax = \"proto3\";\n\n package greeter;\n\n // The greeting service definition.\n service Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n }\n\n // The request message containing the user's name.\n message HelloRequest {\n string name = 1;\n }\n\n // The response message containing the greetings\n message HelloReply {\n string message = 1;\n }\n optionsList:\n tickEvery: 900\n acceptSelfSigned: true\n # Example Usage (Synthetics Browser test)\n # Create a new Datadog Synthetics Browser test starting on https://www.example.org\n testBrowser:\n type: datadog:SyntheticsTest\n name: test_browser\n properties:\n name: A Browser test on example.org\n type: browser\n status: paused\n message: Notify @qa\n deviceIds:\n - laptop_large\n locations:\n - aws:eu-central-1\n tags: []\n requestDefinition:\n method: GET\n url: https://www.example.org\n browserSteps:\n - name: Check current url\n type: assertCurrentUrl\n params:\n check: contains\n value: datadoghq\n - name: Test a downloaded file\n type: assertFileDownload\n params:\n file:\n fn::toJSON:\n md5: abcdef1234567890\n sizeCheck:\n type: equals\n value: 1\n nameCheck:\n type: contains\n value: .xls\n browserVariables:\n - type: text\n name: MY_PATTERN_VAR\n pattern: '{{numeric(3)}}'\n example: '597'\n - type: email\n name: MY_EMAIL_VAR\n pattern: jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co\n example: jd8-afe-ydv.4546132139@synthetics.dtdg.co\n - type: global\n name: MY_GLOBAL_VAR\n id: 76636cd1-82e2-4aeb-9cfe-51366a8198a2\n optionsList:\n tickEvery: 3600\n # Example Usage (GRPC API behavior check test)\n # Create a new Datadog GRPC API test calling host example.org on port 443\n # targeting service `greeter.Greeter` with the method `SayHello`\n # and the message {\"name\": \"John\"}\n testGrpcUnary:\n type: datadog:SyntheticsTest\n name: test_grpc_unary\n properties:\n name: GRPC API behavior check test\n type: api\n subtype: grpc\n status: live\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n host: example.org\n port: '443'\n callType: unary\n service: greeter.Greeter\n method: SayHello\n message: '{\"name\": \"John\"}'\n plainProtoFile: |\n syntax = \"proto3\";\n\n package greeter;\n\n // The greeting service definition.\n service Greeter {\n // Sends a greeting\n rpc SayHello (HelloRequest) returns (HelloReply) {}\n }\n\n // The request message containing the user's name.\n message HelloRequest {\n string name = 1;\n }\n\n // The response message containing the greetings\n message HelloReply {\n string message = 1;\n }\n requestMetadata:\n header: value\n assertions:\n - type: responseTime\n operator: lessThan\n target: '2000'\n - operator: is\n type: grpcHealthcheckStatus\n target: 1\n - operator: is\n type: grpcProto\n target: proto target\n - operator: is\n property: property\n type: grpcMetadata\n target: '123'\n optionsList:\n tickEvery: 900\n # Example Usage (GRPC API health check test)\n # Create a new Datadog GRPC API test calling host example.org on port 443\n # testing the overall health of the service\n testGrpcHealth:\n type: datadog:SyntheticsTest\n name: test_grpc_health\n properties:\n name: GRPC API health check test\n type: api\n subtype: grpc\n status: live\n locations:\n - aws:eu-central-1\n tags:\n - foo:bar\n - foo\n - env:test\n requestDefinition:\n host: example.org\n port: '443'\n callType: healthcheck\n service: greeter.Greeter\n assertions:\n - type: responseTime\n operator: lessThan\n target: '2000'\n - operator: is\n type: grpcHealthcheckStatus\n target: 1\n optionsList:\n tickEvery: 900\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSynthetics tests can be imported using their public string ID, e.g.\n\n```sh\n$ pulumi import datadog:index/syntheticsTest:SyntheticsTest fizz abc-123-xyz\n```\n\n", "properties": { "apiSteps": { "type": "array", diff --git a/provider/go.mod b/provider/go.mod index 024c9fe07..ab0df9d44 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -5,14 +5,14 @@ go 1.23 toolchain go1.23.1 require ( - github.com/pulumi/providertest v0.1.2 - github.com/pulumi/pulumi-terraform-bridge/pf v0.46.0 - github.com/pulumi/pulumi-terraform-bridge/v3 v3.93.1 - github.com/pulumi/pulumi/pkg/v3 v3.136.1 - github.com/pulumi/pulumi/sdk/v3 v3.136.1 + github.com/pulumi/providertest v0.1.3 + github.com/pulumi/pulumi-terraform-bridge/pf v0.47.0 + github.com/pulumi/pulumi-terraform-bridge/v3 v3.94.0 + github.com/pulumi/pulumi/pkg/v3 v3.137.0 + github.com/pulumi/pulumi/sdk/v3 v3.137.0 github.com/stretchr/testify v1.9.0 github.com/terraform-providers/terraform-provider-datadog v0.0.0 - golang.org/x/text v0.16.0 + golang.org/x/text v0.17.0 ) replace ( @@ -25,7 +25,7 @@ replace ( require ( cloud.google.com/go v0.112.1 // indirect - cloud.google.com/go/compute/metadata v0.3.0 // indirect + cloud.google.com/go/compute/metadata v0.5.0 // indirect cloud.google.com/go/iam v1.1.6 // indirect cloud.google.com/go/kms v1.15.7 // indirect cloud.google.com/go/logging v1.9.0 // indirect @@ -100,7 +100,7 @@ require ( github.com/gofrs/uuid v4.3.1+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect - github.com/golang/glog v1.2.1 // indirect + github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-cmp v0.6.0 // indirect @@ -119,7 +119,7 @@ require ( github.com/hashicorp/go-getter v1.7.5 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-plugin v1.6.1 // indirect + github.com/hashicorp/go-plugin v1.6.2 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect @@ -134,7 +134,7 @@ require ( github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-plugin-framework v1.12.0 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.24.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.25.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 // indirect github.com/hashicorp/terraform-registry-address v0.2.3 // indirect @@ -188,7 +188,7 @@ require ( github.com/pulumi/esc v0.10.0 // indirect github.com/pulumi/inflector v0.1.1 // indirect github.com/pulumi/pulumi-java/pkg v0.16.1 // indirect - github.com/pulumi/pulumi-yaml v1.10.3 // indirect + github.com/pulumi/pulumi-yaml v1.11.1 // indirect github.com/pulumi/schema-tools v0.1.2 // indirect github.com/pulumi/terraform-diff-reader v0.0.2 // indirect github.com/rivo/uniseg v0.4.4 // indirect @@ -230,24 +230,24 @@ require ( go.uber.org/atomic v1.10.0 // indirect gocloud.dev v0.37.0 // indirect gocloud.dev/secrets/hashivault v0.37.0 // indirect - golang.org/x/crypto v0.25.0 // indirect + golang.org/x/crypto v0.26.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.27.0 // indirect - golang.org/x/oauth2 v0.21.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.22.0 // indirect - golang.org/x/term v0.22.0 // indirect + golang.org/x/net v0.28.0 // indirect + golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.24.0 // indirect + golang.org/x/term v0.23.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.169.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect - google.golang.org/grpc v1.66.2 // indirect - google.golang.org/protobuf v1.34.2 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/grpc v1.67.1 // indirect + google.golang.org/protobuf v1.35.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/provider/go.sum b/provider/go.sum index 7913afd2b..402b0c4f1 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -308,8 +308,8 @@ cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZ cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= -cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= +cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= @@ -1452,8 +1452,8 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= -github.com/golang/glog v1.2.1 h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4= -github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= +github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -1622,8 +1622,8 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= -github.com/hashicorp/go-plugin v1.6.1 h1:P7MR2UP6gNKGPp+y7EZw2kOiq4IR9WiqLvp0XOsVdwI= -github.com/hashicorp/go-plugin v1.6.1/go.mod h1:XPHFku2tFo3o3QKFgSYo+cghcUhw1NA1hZyMK0PWAw0= +github.com/hashicorp/go-plugin v1.6.2 h1:zdGAEd0V1lCaU0u+MxWQhtSDQmahpkwOun8U8EiRVog= +github.com/hashicorp/go-plugin v1.6.2/go.mod h1:CkgLQ5CZqNmdL9U9JzM532t8ZiYQ35+pj3b1FD37R0Q= github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= @@ -1668,8 +1668,8 @@ github.com/hashicorp/terraform-plugin-framework v1.12.0/go.mod h1:N/IOQ2uYjW60Jp github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0/go.mod h1:jfHGE/gzjxYz6XoUwi/aYiiKrJDeutQNUtGQXkaHklg= github.com/hashicorp/terraform-plugin-go v0.22.0/go.mod h1:mPULV91VKss7sik6KFEcEu7HuTogMLLO/EvWCuFkRVE= -github.com/hashicorp/terraform-plugin-go v0.24.0 h1:2WpHhginCdVhFIrWHxDEg6RBn3YaWzR2o6qUeIEat2U= -github.com/hashicorp/terraform-plugin-go v0.24.0/go.mod h1:tUQ53lAsOyYSckFGEefGC5C8BAaO0ENqzFd3bQeuYQg= +github.com/hashicorp/terraform-plugin-go v0.25.0 h1:oi13cx7xXA6QciMcpcFi/rwA974rdTxjqEhXJjbAyks= +github.com/hashicorp/terraform-plugin-go v0.25.0/go.mod h1:+SYagMYadJP86Kvn+TGeV+ofr/R3g4/If0O5sO96MVw= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= github.com/hashicorp/terraform-plugin-sdk v1.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0= @@ -1922,20 +1922,20 @@ github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE= github.com/pulumi/esc v0.10.0/go.mod h1:2Bfa+FWj/xl8CKqRTWbWgDX0SOD4opdQgvYSURTGK2c= github.com/pulumi/inflector v0.1.1 h1:dvlxlWtXwOJTUUtcYDvwnl6Mpg33prhK+7mzeF+SobA= github.com/pulumi/inflector v0.1.1/go.mod h1:HUFCjcPTz96YtTuUlwG3i3EZG4WlniBvR9bd+iJxCUY= -github.com/pulumi/providertest v0.1.2 h1:9pJS9MeNkMyGwyNeHmvh8QqLgJy39Nk2/ym5u7r13ng= -github.com/pulumi/providertest v0.1.2/go.mod h1:GcsqEGgSngwaNOD+kICJPIUQlnA911fGBU8HDlJvVL0= +github.com/pulumi/providertest v0.1.3 h1:GpNKRy/haNjRHiUA9bi4diU4Op2zf3axYXbga5AepHg= +github.com/pulumi/providertest v0.1.3/go.mod h1:GcsqEGgSngwaNOD+kICJPIUQlnA911fGBU8HDlJvVL0= github.com/pulumi/pulumi-java/pkg v0.16.1 h1:orHnDWFbpOERwaBLry9f+6nqPX7x0MsrIkaa5QDGAns= github.com/pulumi/pulumi-java/pkg v0.16.1/go.mod h1:QH0DihZkWYle9XFc+LJ76m4hUo+fA3RdyaM90pqOaSM= -github.com/pulumi/pulumi-terraform-bridge/pf v0.46.0 h1:B95rH9t8LSZdEApF8sDogjSz67exG2KY3jGr87zwJek= -github.com/pulumi/pulumi-terraform-bridge/pf v0.46.0/go.mod h1:i75vRSbpf4YizD+ynNkLgp0sgZhm2N7xapPaBBiiZXA= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.93.1 h1:EEf5W3buVR5pcCKTXGouDS1/oY6TqVUIRKLksl5h4Es= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.93.1/go.mod h1:jNpOSGkfTeZSnSjpGBHHiyllciCEDRqFaZhLUpQPlpo= -github.com/pulumi/pulumi-yaml v1.10.3 h1:j5cjPiE32ILmjrWnC1cfZ0MWdqCZ8fg9wlaWk7HOtM4= -github.com/pulumi/pulumi-yaml v1.10.3/go.mod h1:MFMQXkaUP5YQUKVJ6Z/aagZDl2f8hdU9oGaJfTcMf1Y= -github.com/pulumi/pulumi/pkg/v3 v3.136.1 h1:zA8aJZ7qI0QgZkBKjjQaYHEcigK6pZfrbfG38imXzWo= -github.com/pulumi/pulumi/pkg/v3 v3.136.1/go.mod h1:Iz8QIs07AbEdrO52hEIEM5C4VBDUYFH2NdM9u2xxBxY= -github.com/pulumi/pulumi/sdk/v3 v3.136.1 h1:VJWTgdBrLvvzIkMbGq/epNEfT65P9gTvw14UF/I7hTI= -github.com/pulumi/pulumi/sdk/v3 v3.136.1/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= +github.com/pulumi/pulumi-terraform-bridge/pf v0.47.0 h1:vPNSFtQxeXaqhKxjPHeuNX1g9l4HB/TVj5A3iUrd0EU= +github.com/pulumi/pulumi-terraform-bridge/pf v0.47.0/go.mod h1:n1Yt5RBM0Td388yoPX380Jz6tlVqJzVsNfWGcaQo5vE= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.94.0 h1:wRJxFAQVV5Bg+BUVKpsNTWDIBSPCZUnbtxTyujZiM2o= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.94.0/go.mod h1:S7rLe9paLUP2U7iwJhNJslwQszlgUfND83KRVCogbog= +github.com/pulumi/pulumi-yaml v1.11.1 h1:ULUL9fpb2Bwgf3jJHx0FamKYm0ld0KxBQr/uSAslRLk= +github.com/pulumi/pulumi-yaml v1.11.1/go.mod h1:RdXRBupRGGAD1kbYNG1V1h6pyFnXisvQsl0AANvVjGI= +github.com/pulumi/pulumi/pkg/v3 v3.137.0 h1:/KPFQQaB5W0/GhVxSTGnEzv3ZW5uieGN5Q2q+Lsr+Zw= +github.com/pulumi/pulumi/pkg/v3 v3.137.0/go.mod h1:ZQXJUTysDwq/mtilutRBKguH6DI+3b2WgNcOrs0whJ0= +github.com/pulumi/pulumi/sdk/v3 v3.137.0 h1:bxhYpOY7Z4xt+VmezEpHuhjpOekkaMqOjzxFg/1OhCw= +github.com/pulumi/pulumi/sdk/v3 v3.137.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= github.com/pulumi/schema-tools v0.1.2 h1:Fd9xvUjgck4NA+7/jSk7InqCUT4Kj940+EcnbQKpfZo= github.com/pulumi/schema-tools v0.1.2/go.mod h1:62lgj52Tzq11eqWTIaKd+EVyYAu5dEcDJxMhTjvMO/k= github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abqkI3OhJ0G04LLI= @@ -2148,8 +2148,8 @@ golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= -golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2295,8 +2295,8 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2332,8 +2332,8 @@ golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQ golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= -golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= -golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= +golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2355,8 +2355,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2467,8 +2467,8 @@ golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= +golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -2489,8 +2489,8 @@ golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= -golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2512,8 +2512,8 @@ golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2863,8 +2863,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go. google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870= google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405/go.mod h1:oT32Z4o8Zv2xPQTg0pbVaPr0MPOH6f14RgXt7zfIpwg= google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 h1:+rdxYoE3E5htTEWIe15GlN6IfvbURM//Jt0mmkmm6ZU= -google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117/go.mod h1:OimBR/bc1wPO9iV4NC2bpyjy3VnAwZh5EBPQdtaE5oo= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230807174057-1744710a1577/go.mod h1:NjCQG/D8JandXxM57PZbAJL1DCNL6EypA0vPPwfsc7c= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= @@ -2885,8 +2885,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go. google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -2937,8 +2937,8 @@ google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSs google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo= -google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -2960,8 +2960,8 @@ google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/sdk/go.mod b/sdk/go.mod index 933a327c9..1084779f6 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi/sdk/v3 v3.136.1 + github.com/pulumi/pulumi/sdk/v3 v3.137.0 ) require ( diff --git a/sdk/go.sum b/sdk/go.sum index f84872a12..e73423181 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -150,8 +150,8 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs= github.com/pulumi/esc v0.9.1/go.mod h1:oEJ6bOsjYlQUpjf70GiX+CXn3VBmpwFDxUTlmtUN84c= -github.com/pulumi/pulumi/sdk/v3 v3.136.1 h1:VJWTgdBrLvvzIkMbGq/epNEfT65P9gTvw14UF/I7hTI= -github.com/pulumi/pulumi/sdk/v3 v3.136.1/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= +github.com/pulumi/pulumi/sdk/v3 v3.137.0 h1:bxhYpOY7Z4xt+VmezEpHuhjpOekkaMqOjzxFg/1OhCw= +github.com/pulumi/pulumi/sdk/v3 v3.137.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= diff --git a/sdk/python/pulumi_datadog/synthetics_test.py b/sdk/python/pulumi_datadog/synthetics_test.py index 9ab35d550..0f0d887e6 100644 --- a/sdk/python/pulumi_datadog/synthetics_test.py +++ b/sdk/python/pulumi_datadog/synthetics_test.py @@ -1074,8 +1074,8 @@ def __init__(__self__, "url": "https://www.example.org", }, "request_headers": { - "content__type": "application/json", - "authentication": "Token: 1234566789", + "Content-Type": "application/json", + "Authentication": "Token: 1234566789", }, }, { @@ -1177,11 +1177,11 @@ def __init__(__self__, "params": { "file": json.dumps({ "md5": "abcdef1234567890", - "size_check": { + "sizeCheck": { "type": "equals", "value": 1, }, - "name_check": { + "nameCheck": { "type": "contains", "value": ".xls", }, @@ -1566,8 +1566,8 @@ def __init__(__self__, "url": "https://www.example.org", }, "request_headers": { - "content__type": "application/json", - "authentication": "Token: 1234566789", + "Content-Type": "application/json", + "Authentication": "Token: 1234566789", }, }, { @@ -1669,11 +1669,11 @@ def __init__(__self__, "params": { "file": json.dumps({ "md5": "abcdef1234567890", - "size_check": { + "sizeCheck": { "type": "equals", "value": 1, }, - "name_check": { + "nameCheck": { "type": "contains", "value": ".xls", },