datadog.SyntheticsTest
Explore with Pulumi AI
Provides a Datadog synthetics test resource. This can be used to create and manage Datadog synthetics test.
Warning
Starting from version 3.1.0+, the direct usage of global variables in the configuration is deprecated, in favor of
local variables of type global
. As an example, if you were previously using {{ GLOBAL_VAR }}
directly in your
configuration, 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.
In practice, it means going from (simplified configuration):
url = https://{{ GLOBAL_VAR }}
to
config_variable {
name = "LOCAL_VAR"
id = [your_global_variable_id]
type = "global"
}
which you can now use in your request definition:
url = https://{{ LOCAL_VAR }}
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as datadog from "@pulumi/datadog";
// Example Usage (Synthetics API test)
// Create a new Datadog Synthetics API/HTTP test on https://www.example.org
const testUptime = new datadog.SyntheticsTest("test_uptime", {
name: "An Uptime test on example.org",
type: "api",
subtype: "http",
status: "live",
message: "Notify @pagerduty",
locations: ["aws:eu-central-1"],
tags: [
"foo:bar",
"foo",
"env:test",
],
requestDefinition: {
method: "GET",
url: "https://www.example.org",
},
requestHeaders: {
"Content-Type": "application/json",
},
assertions: [{
type: "statusCode",
operator: "is",
target: "200",
}],
optionsList: {
tickEvery: 900,
retry: {
count: 2,
interval: 300,
},
monitorOptions: {
renotifyInterval: 120,
},
},
});
// Example Usage (Authenticated API test)
// Create a new Datadog Synthetics API/HTTP test on https://www.example.org
const testApi = new datadog.SyntheticsTest("test_api", {
name: "An API test on example.org",
type: "api",
subtype: "http",
status: "live",
message: "Notify @pagerduty",
locations: ["aws:eu-central-1"],
tags: [
"foo:bar",
"foo",
"env:test",
],
requestDefinition: {
method: "GET",
url: "https://www.example.org",
},
requestHeaders: {
"Content-Type": "application/json",
Authentication: "Token: 1234566789",
},
assertions: [{
type: "statusCode",
operator: "is",
target: "200",
}],
optionsList: {
tickEvery: 900,
retry: {
count: 2,
interval: 300,
},
monitorOptions: {
renotifyInterval: 120,
},
},
});
// Example Usage (Synthetics SSL test)
// Create a new Datadog Synthetics API/SSL test on example.org
const testSsl = new datadog.SyntheticsTest("test_ssl", {
name: "An API test on example.org",
type: "api",
subtype: "ssl",
status: "live",
message: "Notify @pagerduty",
locations: ["aws:eu-central-1"],
tags: [
"foo:bar",
"foo",
"env:test",
],
requestDefinition: {
host: "example.org",
port: "443",
},
assertions: [{
type: "certificate",
operator: "isInMoreThan",
target: "30",
}],
optionsList: {
tickEvery: 900,
acceptSelfSigned: true,
},
});
// Example Usage (Synthetics TCP test)
// Create a new Datadog Synthetics API/TCP test on example.org
const testTcp = new datadog.SyntheticsTest("test_tcp", {
name: "An API test on example.org",
type: "api",
subtype: "tcp",
status: "live",
message: "Notify @pagerduty",
locations: ["aws:eu-central-1"],
tags: [
"foo:bar",
"foo",
"env:test",
],
requestDefinition: {
host: "example.org",
port: "443",
},
assertions: [{
type: "responseTime",
operator: "lessThan",
target: "2000",
}],
configVariables: [{
type: "global",
name: "MY_GLOBAL_VAR",
id: "76636cd1-82e2-4aeb-9cfe-51366a8198a2",
}],
optionsList: {
tickEvery: 900,
},
});
// Example Usage (Synthetics DNS test)
// Create a new Datadog Synthetics API/DNS test on example.org
const testDns = new datadog.SyntheticsTest("test_dns", {
name: "An API test on example.org",
type: "api",
subtype: "dns",
status: "live",
message: "Notify @pagerduty",
locations: ["aws:eu-central-1"],
tags: [
"foo:bar",
"foo",
"env:test",
],
requestDefinition: {
host: "example.org",
},
assertions: [{
type: "recordSome",
operator: "is",
property: "A",
target: "0.0.0.0",
}],
optionsList: {
tickEvery: 900,
},
});
// Example Usage (Synthetics Multistep API test)
// Create a new Datadog Synthetics Multistep API test
const testMultiStep = new datadog.SyntheticsTest("test_multi_step", {
name: "Multistep API test",
type: "api",
subtype: "multi",
status: "live",
locations: ["aws:eu-central-1"],
tags: [
"foo:bar",
"foo",
"env:test",
],
apiSteps: [
{
name: "An API test on example.org",
subtype: "http",
assertions: [{
type: "statusCode",
operator: "is",
target: "200",
}],
requestDefinition: {
method: "GET",
url: "https://www.example.org",
},
requestHeaders: {
"Content-Type": "application/json",
Authentication: "Token: 1234566789",
},
},
{
name: "An API test on example.org",
subtype: "http",
assertions: [{
type: "statusCode",
operator: "is",
target: "200",
}],
requestDefinition: {
method: "GET",
url: "http://example.org",
},
},
{
name: "A gRPC health check on example.org",
subtype: "grpc",
assertions: [{
type: "statusCode",
operator: "is",
target: "200",
}],
requestDefinition: {
host: "example.org",
port: "443",
callType: "healthcheck",
service: "greeter.Greeter",
},
},
{
name: "A gRPC behavior check on example.org",
subtype: "grpc",
assertions: [{
type: "statusCode",
operator: "is",
target: "200",
}],
requestDefinition: {
host: "example.org",
port: "443",
callType: "unary",
service: "greeter.Greeter",
method: "SayHello",
message: "{\"name\": \"John\"}",
plainProtoFile: `syntax = "proto3";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
`,
},
},
],
optionsList: {
tickEvery: 900,
acceptSelfSigned: true,
},
});
// Example Usage (Synthetics Browser test)
// Create a new Datadog Synthetics Browser test starting on https://www.example.org
const testBrowser = new datadog.SyntheticsTest("test_browser", {
name: "A Browser test on example.org",
type: "browser",
status: "paused",
message: "Notify @qa",
deviceIds: ["laptop_large"],
locations: ["aws:eu-central-1"],
tags: [],
requestDefinition: {
method: "GET",
url: "https://www.example.org",
},
browserSteps: [
{
name: "Check current url",
type: "assertCurrentUrl",
params: {
check: "contains",
value: "datadoghq",
},
},
{
name: "Test a downloaded file",
type: "assertFileDownload",
params: {
file: JSON.stringify({
md5: "abcdef1234567890",
sizeCheck: {
type: "equals",
value: 1,
},
nameCheck: {
type: "contains",
value: ".xls",
},
}),
},
},
],
browserVariables: [
{
type: "text",
name: "MY_PATTERN_VAR",
pattern: "{{numeric(3)}}",
example: "597",
},
{
type: "email",
name: "MY_EMAIL_VAR",
pattern: "jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co",
example: "jd8-afe-ydv.4546132139@synthetics.dtdg.co",
},
{
type: "global",
name: "MY_GLOBAL_VAR",
id: "76636cd1-82e2-4aeb-9cfe-51366a8198a2",
},
],
optionsList: {
tickEvery: 3600,
},
});
// Example Usage (Synthetics Mobile test)
// Create a new Datadog Synthetics Mobile test starting on https://www.example.org
const testMobile = new datadog.SyntheticsTest("test_mobile", {
type: "mobile",
name: "A Mobile test on example.org",
status: "paused",
message: "Notify @datadog.user",
tags: [
"foo:bar",
"baz",
],
configVariables: [{
example: "123",
name: "VARIABLE_NAME",
pattern: "{{numeric(3)}}",
type: "text",
secure: false,
}],
configInitialApplicationArguments: {
test_process_argument: "test1",
},
deviceIds: ["synthetics:mobile:device:apple_iphone_14_plus_ios_16"],
locations: ["aws:eu-central-1"],
mobileOptionsList: {
minFailureDuration: 0,
retry: {
count: 0,
interval: 300,
},
tickEvery: 43200,
scheduling: {
timeframes: [
{
day: 5,
from: "07:00",
to: "16:00",
},
{
day: 7,
from: "07:00",
to: "16:00",
},
],
timezone: "UTC",
},
monitorName: "mobile-test-monitor",
monitorOptions: {
renotifyInterval: 10,
escalationMessage: "test escalation message",
renotifyOccurrences: 3,
notificationPresetName: "show_all",
},
monitorPriority: 5,
restrictedRoles: [
"role1",
"role2",
],
bindings: [{
principals: [
"org:8dee7c38-0000-aaaa-zzzz-8b5a08d3b091",
"team:3a0cdd74-0000-aaaa-zzzz-da7ad0900002",
],
relation: "editor",
}],
ci: {
executionRule: "blocking",
},
defaultStepTimeout: 10,
deviceIds: ["synthetics:mobile:device:apple_iphone_14_plus_ios_16"],
noScreenshot: true,
allowApplicationCrash: false,
disableAutoAcceptAlert: true,
mobileApplication: {
applicationId: "5f055d15-0000-aaaa-zzzz-6739f83346aa",
referenceId: "434d4719-0000-aaaa-zzzz-31082b544718",
referenceType: "version",
},
},
mobileSteps: [
{
name: "Tap on StaticText \"Tap\"",
params: {
element: {
context: "NATIVE_APP",
viewName: "StaticText",
contextType: "native",
textContent: "Tap",
multiLocator: {},
relativePosition: {
x: 0.07256155303030302,
y: 0.41522381756756754,
},
userLocator: {
failTestOnCannotLocate: false,
values: [{
type: "id",
value: "some_id",
}],
},
elementDescription: "<XCUIElementTypeStaticText value=\"Tap\" name=\"Tap\" label=\"Tap\">",
},
},
timeout: 100,
type: "tap",
allowFailure: false,
isCritical: true,
noScreenshot: false,
hasNewStepElement: false,
},
{
name: "Test View \"Tap\" content",
params: {
check: "contains",
value: "Tap",
element: {
context: "NATIVE_APP",
viewName: "View",
contextType: "native",
textContent: "Tap",
multiLocator: {},
relativePosition: {
x: 0.27660448306074764,
y: 0.6841517857142857,
},
userLocator: {
failTestOnCannotLocate: false,
values: [{
type: "id",
value: "some_id",
}],
},
elementDescription: "<XCUIElementTypeOther name=\"Tap\" label=\"Tap\">",
},
},
timeout: 100,
type: "assertElementContent",
allowFailure: false,
isCritical: true,
noScreenshot: false,
hasNewStepElement: false,
},
],
});
// Example Usage (GRPC API behavior check test)
// Create a new Datadog GRPC API test calling host example.org on port 443
// targeting service `greeter.Greeter` with the method `SayHello`
// and the message {"name": "John"}
const testGrpcUnary = new datadog.SyntheticsTest("test_grpc_unary", {
name: "GRPC API behavior check test",
type: "api",
subtype: "grpc",
status: "live",
locations: ["aws:eu-central-1"],
tags: [
"foo:bar",
"foo",
"env:test",
],
requestDefinition: {
host: "example.org",
port: "443",
callType: "unary",
service: "greeter.Greeter",
method: "SayHello",
message: "{\"name\": \"John\"}",
plainProtoFile: `syntax = "proto3";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
`,
},
requestMetadata: {
header: "value",
},
assertions: [
{
type: "responseTime",
operator: "lessThan",
target: "2000",
},
{
operator: "is",
type: "grpcHealthcheckStatus",
target: "1",
},
{
operator: "is",
type: "grpcProto",
target: "proto target",
},
{
operator: "is",
property: "property",
type: "grpcMetadata",
target: "123",
},
],
optionsList: {
tickEvery: 900,
},
});
// Example Usage (GRPC API health check test)
// Create a new Datadog GRPC API test calling host example.org on port 443
// testing the overall health of the service
const testGrpcHealth = new datadog.SyntheticsTest("test_grpc_health", {
name: "GRPC API health check test",
type: "api",
subtype: "grpc",
status: "live",
locations: ["aws:eu-central-1"],
tags: [
"foo:bar",
"foo",
"env:test",
],
requestDefinition: {
host: "example.org",
port: "443",
callType: "healthcheck",
service: "greeter.Greeter",
},
assertions: [
{
type: "responseTime",
operator: "lessThan",
target: "2000",
},
{
operator: "is",
type: "grpcHealthcheckStatus",
target: "1",
},
],
optionsList: {
tickEvery: 900,
},
});
import pulumi
import json
import pulumi_datadog as datadog
# Example Usage (Synthetics API test)
# Create a new Datadog Synthetics API/HTTP test on https://www.example.org
test_uptime = datadog.SyntheticsTest("test_uptime",
name="An Uptime test on example.org",
type="api",
subtype="http",
status="live",
message="Notify @pagerduty",
locations=["aws:eu-central-1"],
tags=[
"foo:bar",
"foo",
"env:test",
],
request_definition={
"method": "GET",
"url": "https://www.example.org",
},
request_headers={
"Content-Type": "application/json",
},
assertions=[{
"type": "statusCode",
"operator": "is",
"target": "200",
}],
options_list={
"tick_every": 900,
"retry": {
"count": 2,
"interval": 300,
},
"monitor_options": {
"renotify_interval": 120,
},
})
# Example Usage (Authenticated API test)
# Create a new Datadog Synthetics API/HTTP test on https://www.example.org
test_api = datadog.SyntheticsTest("test_api",
name="An API test on example.org",
type="api",
subtype="http",
status="live",
message="Notify @pagerduty",
locations=["aws:eu-central-1"],
tags=[
"foo:bar",
"foo",
"env:test",
],
request_definition={
"method": "GET",
"url": "https://www.example.org",
},
request_headers={
"Content-Type": "application/json",
"Authentication": "Token: 1234566789",
},
assertions=[{
"type": "statusCode",
"operator": "is",
"target": "200",
}],
options_list={
"tick_every": 900,
"retry": {
"count": 2,
"interval": 300,
},
"monitor_options": {
"renotify_interval": 120,
},
})
# Example Usage (Synthetics SSL test)
# Create a new Datadog Synthetics API/SSL test on example.org
test_ssl = datadog.SyntheticsTest("test_ssl",
name="An API test on example.org",
type="api",
subtype="ssl",
status="live",
message="Notify @pagerduty",
locations=["aws:eu-central-1"],
tags=[
"foo:bar",
"foo",
"env:test",
],
request_definition={
"host": "example.org",
"port": "443",
},
assertions=[{
"type": "certificate",
"operator": "isInMoreThan",
"target": "30",
}],
options_list={
"tick_every": 900,
"accept_self_signed": True,
})
# Example Usage (Synthetics TCP test)
# Create a new Datadog Synthetics API/TCP test on example.org
test_tcp = datadog.SyntheticsTest("test_tcp",
name="An API test on example.org",
type="api",
subtype="tcp",
status="live",
message="Notify @pagerduty",
locations=["aws:eu-central-1"],
tags=[
"foo:bar",
"foo",
"env:test",
],
request_definition={
"host": "example.org",
"port": "443",
},
assertions=[{
"type": "responseTime",
"operator": "lessThan",
"target": "2000",
}],
config_variables=[{
"type": "global",
"name": "MY_GLOBAL_VAR",
"id": "76636cd1-82e2-4aeb-9cfe-51366a8198a2",
}],
options_list={
"tick_every": 900,
})
# Example Usage (Synthetics DNS test)
# Create a new Datadog Synthetics API/DNS test on example.org
test_dns = datadog.SyntheticsTest("test_dns",
name="An API test on example.org",
type="api",
subtype="dns",
status="live",
message="Notify @pagerduty",
locations=["aws:eu-central-1"],
tags=[
"foo:bar",
"foo",
"env:test",
],
request_definition={
"host": "example.org",
},
assertions=[{
"type": "recordSome",
"operator": "is",
"property": "A",
"target": "0.0.0.0",
}],
options_list={
"tick_every": 900,
})
# Example Usage (Synthetics Multistep API test)
# Create a new Datadog Synthetics Multistep API test
test_multi_step = datadog.SyntheticsTest("test_multi_step",
name="Multistep API test",
type="api",
subtype="multi",
status="live",
locations=["aws:eu-central-1"],
tags=[
"foo:bar",
"foo",
"env:test",
],
api_steps=[
{
"name": "An API test on example.org",
"subtype": "http",
"assertions": [{
"type": "statusCode",
"operator": "is",
"target": "200",
}],
"request_definition": {
"method": "GET",
"url": "https://www.example.org",
},
"request_headers": {
"Content-Type": "application/json",
"Authentication": "Token: 1234566789",
},
},
{
"name": "An API test on example.org",
"subtype": "http",
"assertions": [{
"type": "statusCode",
"operator": "is",
"target": "200",
}],
"request_definition": {
"method": "GET",
"url": "http://example.org",
},
},
{
"name": "A gRPC health check on example.org",
"subtype": "grpc",
"assertions": [{
"type": "statusCode",
"operator": "is",
"target": "200",
}],
"request_definition": {
"host": "example.org",
"port": "443",
"call_type": "healthcheck",
"service": "greeter.Greeter",
},
},
{
"name": "A gRPC behavior check on example.org",
"subtype": "grpc",
"assertions": [{
"type": "statusCode",
"operator": "is",
"target": "200",
}],
"request_definition": {
"host": "example.org",
"port": "443",
"call_type": "unary",
"service": "greeter.Greeter",
"method": "SayHello",
"message": "{\"name\": \"John\"}",
"plain_proto_file": """syntax = "proto3";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
""",
},
},
],
options_list={
"tick_every": 900,
"accept_self_signed": True,
})
# Example Usage (Synthetics Browser test)
# Create a new Datadog Synthetics Browser test starting on https://www.example.org
test_browser = datadog.SyntheticsTest("test_browser",
name="A Browser test on example.org",
type="browser",
status="paused",
message="Notify @qa",
device_ids=["laptop_large"],
locations=["aws:eu-central-1"],
tags=[],
request_definition={
"method": "GET",
"url": "https://www.example.org",
},
browser_steps=[
{
"name": "Check current url",
"type": "assertCurrentUrl",
"params": {
"check": "contains",
"value": "datadoghq",
},
},
{
"name": "Test a downloaded file",
"type": "assertFileDownload",
"params": {
"file": json.dumps({
"md5": "abcdef1234567890",
"sizeCheck": {
"type": "equals",
"value": 1,
},
"nameCheck": {
"type": "contains",
"value": ".xls",
},
}),
},
},
],
browser_variables=[
{
"type": "text",
"name": "MY_PATTERN_VAR",
"pattern": "{{numeric(3)}}",
"example": "597",
},
{
"type": "email",
"name": "MY_EMAIL_VAR",
"pattern": "jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co",
"example": "jd8-afe-ydv.4546132139@synthetics.dtdg.co",
},
{
"type": "global",
"name": "MY_GLOBAL_VAR",
"id": "76636cd1-82e2-4aeb-9cfe-51366a8198a2",
},
],
options_list={
"tick_every": 3600,
})
# Example Usage (Synthetics Mobile test)
# Create a new Datadog Synthetics Mobile test starting on https://www.example.org
test_mobile = datadog.SyntheticsTest("test_mobile",
type="mobile",
name="A Mobile test on example.org",
status="paused",
message="Notify @datadog.user",
tags=[
"foo:bar",
"baz",
],
config_variables=[{
"example": "123",
"name": "VARIABLE_NAME",
"pattern": "{{numeric(3)}}",
"type": "text",
"secure": False,
}],
config_initial_application_arguments={
"test_process_argument": "test1",
},
device_ids=["synthetics:mobile:device:apple_iphone_14_plus_ios_16"],
locations=["aws:eu-central-1"],
mobile_options_list={
"min_failure_duration": 0,
"retry": {
"count": 0,
"interval": 300,
},
"tick_every": 43200,
"scheduling": {
"timeframes": [
{
"day": 5,
"from_": "07:00",
"to": "16:00",
},
{
"day": 7,
"from_": "07:00",
"to": "16:00",
},
],
"timezone": "UTC",
},
"monitor_name": "mobile-test-monitor",
"monitor_options": {
"renotify_interval": 10,
"escalation_message": "test escalation message",
"renotify_occurrences": 3,
"notification_preset_name": "show_all",
},
"monitor_priority": 5,
"restricted_roles": [
"role1",
"role2",
],
"bindings": [{
"principals": [
"org:8dee7c38-0000-aaaa-zzzz-8b5a08d3b091",
"team:3a0cdd74-0000-aaaa-zzzz-da7ad0900002",
],
"relation": "editor",
}],
"ci": {
"execution_rule": "blocking",
},
"default_step_timeout": 10,
"device_ids": ["synthetics:mobile:device:apple_iphone_14_plus_ios_16"],
"no_screenshot": True,
"allow_application_crash": False,
"disable_auto_accept_alert": True,
"mobile_application": {
"application_id": "5f055d15-0000-aaaa-zzzz-6739f83346aa",
"reference_id": "434d4719-0000-aaaa-zzzz-31082b544718",
"reference_type": "version",
},
},
mobile_steps=[
{
"name": "Tap on StaticText \"Tap\"",
"params": {
"element": {
"context": "NATIVE_APP",
"view_name": "StaticText",
"context_type": "native",
"text_content": "Tap",
"multi_locator": {},
"relative_position": {
"x": 0.07256155303030302,
"y": 0.41522381756756754,
},
"user_locator": {
"fail_test_on_cannot_locate": False,
"values": [{
"type": "id",
"value": "some_id",
}],
},
"element_description": "<XCUIElementTypeStaticText value=\"Tap\" name=\"Tap\" label=\"Tap\">",
},
},
"timeout": 100,
"type": "tap",
"allow_failure": False,
"is_critical": True,
"no_screenshot": False,
"has_new_step_element": False,
},
{
"name": "Test View \"Tap\" content",
"params": {
"check": "contains",
"value": "Tap",
"element": {
"context": "NATIVE_APP",
"view_name": "View",
"context_type": "native",
"text_content": "Tap",
"multi_locator": {},
"relative_position": {
"x": 0.27660448306074764,
"y": 0.6841517857142857,
},
"user_locator": {
"fail_test_on_cannot_locate": False,
"values": [{
"type": "id",
"value": "some_id",
}],
},
"element_description": "<XCUIElementTypeOther name=\"Tap\" label=\"Tap\">",
},
},
"timeout": 100,
"type": "assertElementContent",
"allow_failure": False,
"is_critical": True,
"no_screenshot": False,
"has_new_step_element": False,
},
])
# Example Usage (GRPC API behavior check test)
# Create a new Datadog GRPC API test calling host example.org on port 443
# targeting service `greeter.Greeter` with the method `SayHello`
# and the message {"name": "John"}
test_grpc_unary = datadog.SyntheticsTest("test_grpc_unary",
name="GRPC API behavior check test",
type="api",
subtype="grpc",
status="live",
locations=["aws:eu-central-1"],
tags=[
"foo:bar",
"foo",
"env:test",
],
request_definition={
"host": "example.org",
"port": "443",
"call_type": "unary",
"service": "greeter.Greeter",
"method": "SayHello",
"message": "{\"name\": \"John\"}",
"plain_proto_file": """syntax = "proto3";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
""",
},
request_metadata={
"header": "value",
},
assertions=[
{
"type": "responseTime",
"operator": "lessThan",
"target": "2000",
},
{
"operator": "is",
"type": "grpcHealthcheckStatus",
"target": "1",
},
{
"operator": "is",
"type": "grpcProto",
"target": "proto target",
},
{
"operator": "is",
"property": "property",
"type": "grpcMetadata",
"target": "123",
},
],
options_list={
"tick_every": 900,
})
# Example Usage (GRPC API health check test)
# Create a new Datadog GRPC API test calling host example.org on port 443
# testing the overall health of the service
test_grpc_health = datadog.SyntheticsTest("test_grpc_health",
name="GRPC API health check test",
type="api",
subtype="grpc",
status="live",
locations=["aws:eu-central-1"],
tags=[
"foo:bar",
"foo",
"env:test",
],
request_definition={
"host": "example.org",
"port": "443",
"call_type": "healthcheck",
"service": "greeter.Greeter",
},
assertions=[
{
"type": "responseTime",
"operator": "lessThan",
"target": "2000",
},
{
"operator": "is",
"type": "grpcHealthcheckStatus",
"target": "1",
},
],
options_list={
"tick_every": 900,
})
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-datadog/sdk/v4/go/datadog"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Example Usage (Synthetics API test)
// Create a new Datadog Synthetics API/HTTP test on https://www.example.org
_, err := datadog.NewSyntheticsTest(ctx, "test_uptime", &datadog.SyntheticsTestArgs{
Name: pulumi.String("An Uptime test on example.org"),
Type: pulumi.String("api"),
Subtype: pulumi.String("http"),
Status: pulumi.String("live"),
Message: pulumi.String("Notify @pagerduty"),
Locations: pulumi.StringArray{
pulumi.String("aws:eu-central-1"),
},
Tags: pulumi.StringArray{
pulumi.String("foo:bar"),
pulumi.String("foo"),
pulumi.String("env:test"),
},
RequestDefinition: &datadog.SyntheticsTestRequestDefinitionArgs{
Method: pulumi.String("GET"),
Url: pulumi.String("https://www.example.org"),
},
RequestHeaders: pulumi.StringMap{
"Content-Type": pulumi.String("application/json"),
},
Assertions: datadog.SyntheticsTestAssertionArray{
&datadog.SyntheticsTestAssertionArgs{
Type: pulumi.String("statusCode"),
Operator: pulumi.String("is"),
Target: pulumi.String("200"),
},
},
OptionsList: &datadog.SyntheticsTestOptionsListArgs{
TickEvery: pulumi.Int(900),
Retry: &datadog.SyntheticsTestOptionsListRetryArgs{
Count: pulumi.Int(2),
Interval: pulumi.Int(300),
},
MonitorOptions: &datadog.SyntheticsTestOptionsListMonitorOptionsArgs{
RenotifyInterval: pulumi.Int(120),
},
},
})
if err != nil {
return err
}
// Example Usage (Authenticated API test)
// Create a new Datadog Synthetics API/HTTP test on https://www.example.org
_, err = datadog.NewSyntheticsTest(ctx, "test_api", &datadog.SyntheticsTestArgs{
Name: pulumi.String("An API test on example.org"),
Type: pulumi.String("api"),
Subtype: pulumi.String("http"),
Status: pulumi.String("live"),
Message: pulumi.String("Notify @pagerduty"),
Locations: pulumi.StringArray{
pulumi.String("aws:eu-central-1"),
},
Tags: pulumi.StringArray{
pulumi.String("foo:bar"),
pulumi.String("foo"),
pulumi.String("env:test"),
},
RequestDefinition: &datadog.SyntheticsTestRequestDefinitionArgs{
Method: pulumi.String("GET"),
Url: pulumi.String("https://www.example.org"),
},
RequestHeaders: pulumi.StringMap{
"Content-Type": pulumi.String("application/json"),
"Authentication": pulumi.String("Token: 1234566789"),
},
Assertions: datadog.SyntheticsTestAssertionArray{
&datadog.SyntheticsTestAssertionArgs{
Type: pulumi.String("statusCode"),
Operator: pulumi.String("is"),
Target: pulumi.String("200"),
},
},
OptionsList: &datadog.SyntheticsTestOptionsListArgs{
TickEvery: pulumi.Int(900),
Retry: &datadog.SyntheticsTestOptionsListRetryArgs{
Count: pulumi.Int(2),
Interval: pulumi.Int(300),
},
MonitorOptions: &datadog.SyntheticsTestOptionsListMonitorOptionsArgs{
RenotifyInterval: pulumi.Int(120),
},
},
})
if err != nil {
return err
}
// Example Usage (Synthetics SSL test)
// Create a new Datadog Synthetics API/SSL test on example.org
_, err = datadog.NewSyntheticsTest(ctx, "test_ssl", &datadog.SyntheticsTestArgs{
Name: pulumi.String("An API test on example.org"),
Type: pulumi.String("api"),
Subtype: pulumi.String("ssl"),
Status: pulumi.String("live"),
Message: pulumi.String("Notify @pagerduty"),
Locations: pulumi.StringArray{
pulumi.String("aws:eu-central-1"),
},
Tags: pulumi.StringArray{
pulumi.String("foo:bar"),
pulumi.String("foo"),
pulumi.String("env:test"),
},
RequestDefinition: &datadog.SyntheticsTestRequestDefinitionArgs{
Host: pulumi.String("example.org"),
Port: pulumi.String("443"),
},
Assertions: datadog.SyntheticsTestAssertionArray{
&datadog.SyntheticsTestAssertionArgs{
Type: pulumi.String("certificate"),
Operator: pulumi.String("isInMoreThan"),
Target: pulumi.String("30"),
},
},
OptionsList: &datadog.SyntheticsTestOptionsListArgs{
TickEvery: pulumi.Int(900),
AcceptSelfSigned: pulumi.Bool(true),
},
})
if err != nil {
return err
}
// Example Usage (Synthetics TCP test)
// Create a new Datadog Synthetics API/TCP test on example.org
_, err = datadog.NewSyntheticsTest(ctx, "test_tcp", &datadog.SyntheticsTestArgs{
Name: pulumi.String("An API test on example.org"),
Type: pulumi.String("api"),
Subtype: pulumi.String("tcp"),
Status: pulumi.String("live"),
Message: pulumi.String("Notify @pagerduty"),
Locations: pulumi.StringArray{
pulumi.String("aws:eu-central-1"),
},
Tags: pulumi.StringArray{
pulumi.String("foo:bar"),
pulumi.String("foo"),
pulumi.String("env:test"),
},
RequestDefinition: &datadog.SyntheticsTestRequestDefinitionArgs{
Host: pulumi.String("example.org"),
Port: pulumi.String("443"),
},
Assertions: datadog.SyntheticsTestAssertionArray{
&datadog.SyntheticsTestAssertionArgs{
Type: pulumi.String("responseTime"),
Operator: pulumi.String("lessThan"),
Target: pulumi.String("2000"),
},
},
ConfigVariables: datadog.SyntheticsTestConfigVariableArray{
&datadog.SyntheticsTestConfigVariableArgs{
Type: pulumi.String("global"),
Name: pulumi.String("MY_GLOBAL_VAR"),
Id: pulumi.String("76636cd1-82e2-4aeb-9cfe-51366a8198a2"),
},
},
OptionsList: &datadog.SyntheticsTestOptionsListArgs{
TickEvery: pulumi.Int(900),
},
})
if err != nil {
return err
}
// Example Usage (Synthetics DNS test)
// Create a new Datadog Synthetics API/DNS test on example.org
_, err = datadog.NewSyntheticsTest(ctx, "test_dns", &datadog.SyntheticsTestArgs{
Name: pulumi.String("An API test on example.org"),
Type: pulumi.String("api"),
Subtype: pulumi.String("dns"),
Status: pulumi.String("live"),
Message: pulumi.String("Notify @pagerduty"),
Locations: pulumi.StringArray{
pulumi.String("aws:eu-central-1"),
},
Tags: pulumi.StringArray{
pulumi.String("foo:bar"),
pulumi.String("foo"),
pulumi.String("env:test"),
},
RequestDefinition: &datadog.SyntheticsTestRequestDefinitionArgs{
Host: pulumi.String("example.org"),
},
Assertions: datadog.SyntheticsTestAssertionArray{
&datadog.SyntheticsTestAssertionArgs{
Type: pulumi.String("recordSome"),
Operator: pulumi.String("is"),
Property: pulumi.String("A"),
Target: pulumi.String("0.0.0.0"),
},
},
OptionsList: &datadog.SyntheticsTestOptionsListArgs{
TickEvery: pulumi.Int(900),
},
})
if err != nil {
return err
}
// Example Usage (Synthetics Multistep API test)
// Create a new Datadog Synthetics Multistep API test
_, err = datadog.NewSyntheticsTest(ctx, "test_multi_step", &datadog.SyntheticsTestArgs{
Name: pulumi.String("Multistep API test"),
Type: pulumi.String("api"),
Subtype: pulumi.String("multi"),
Status: pulumi.String("live"),
Locations: pulumi.StringArray{
pulumi.String("aws:eu-central-1"),
},
Tags: pulumi.StringArray{
pulumi.String("foo:bar"),
pulumi.String("foo"),
pulumi.String("env:test"),
},
ApiSteps: datadog.SyntheticsTestApiStepArray{
&datadog.SyntheticsTestApiStepArgs{
Name: pulumi.String("An API test on example.org"),
Subtype: pulumi.String("http"),
Assertions: datadog.SyntheticsTestApiStepAssertionArray{
&datadog.SyntheticsTestApiStepAssertionArgs{
Type: pulumi.String("statusCode"),
Operator: pulumi.String("is"),
Target: pulumi.String("200"),
},
},
RequestDefinition: &datadog.SyntheticsTestApiStepRequestDefinitionArgs{
Method: pulumi.String("GET"),
Url: pulumi.String("https://www.example.org"),
},
RequestHeaders: pulumi.StringMap{
"Content-Type": pulumi.String("application/json"),
"Authentication": pulumi.String("Token: 1234566789"),
},
},
&datadog.SyntheticsTestApiStepArgs{
Name: pulumi.String("An API test on example.org"),
Subtype: pulumi.String("http"),
Assertions: datadog.SyntheticsTestApiStepAssertionArray{
&datadog.SyntheticsTestApiStepAssertionArgs{
Type: pulumi.String("statusCode"),
Operator: pulumi.String("is"),
Target: pulumi.String("200"),
},
},
RequestDefinition: &datadog.SyntheticsTestApiStepRequestDefinitionArgs{
Method: pulumi.String("GET"),
Url: pulumi.String("http://example.org"),
},
},
&datadog.SyntheticsTestApiStepArgs{
Name: pulumi.String("A gRPC health check on example.org"),
Subtype: pulumi.String("grpc"),
Assertions: datadog.SyntheticsTestApiStepAssertionArray{
&datadog.SyntheticsTestApiStepAssertionArgs{
Type: pulumi.String("statusCode"),
Operator: pulumi.String("is"),
Target: pulumi.String("200"),
},
},
RequestDefinition: &datadog.SyntheticsTestApiStepRequestDefinitionArgs{
Host: pulumi.String("example.org"),
Port: pulumi.String("443"),
CallType: pulumi.String("healthcheck"),
Service: pulumi.String("greeter.Greeter"),
},
},
&datadog.SyntheticsTestApiStepArgs{
Name: pulumi.String("A gRPC behavior check on example.org"),
Subtype: pulumi.String("grpc"),
Assertions: datadog.SyntheticsTestApiStepAssertionArray{
&datadog.SyntheticsTestApiStepAssertionArgs{
Type: pulumi.String("statusCode"),
Operator: pulumi.String("is"),
Target: pulumi.String("200"),
},
},
RequestDefinition: &datadog.SyntheticsTestApiStepRequestDefinitionArgs{
Host: pulumi.String("example.org"),
Port: pulumi.String("443"),
CallType: pulumi.String("unary"),
Service: pulumi.String("greeter.Greeter"),
Method: pulumi.String("SayHello"),
Message: pulumi.String("{\"name\": \"John\"}"),
PlainProtoFile: pulumi.String(`syntax = "proto3";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
`),
},
},
},
OptionsList: &datadog.SyntheticsTestOptionsListArgs{
TickEvery: pulumi.Int(900),
AcceptSelfSigned: pulumi.Bool(true),
},
})
if err != nil {
return err
}
tmpJSON0, err := json.Marshal(map[string]interface{}{
"md5": "abcdef1234567890",
"sizeCheck": map[string]interface{}{
"type": "equals",
"value": 1,
},
"nameCheck": map[string]interface{}{
"type": "contains",
"value": ".xls",
},
})
if err != nil {
return err
}
json0 := string(tmpJSON0)
// Example Usage (Synthetics Browser test)
// Create a new Datadog Synthetics Browser test starting on https://www.example.org
_, err = datadog.NewSyntheticsTest(ctx, "test_browser", &datadog.SyntheticsTestArgs{
Name: pulumi.String("A Browser test on example.org"),
Type: pulumi.String("browser"),
Status: pulumi.String("paused"),
Message: pulumi.String("Notify @qa"),
DeviceIds: pulumi.StringArray{
pulumi.String("laptop_large"),
},
Locations: pulumi.StringArray{
pulumi.String("aws:eu-central-1"),
},
Tags: pulumi.StringArray{},
RequestDefinition: &datadog.SyntheticsTestRequestDefinitionArgs{
Method: pulumi.String("GET"),
Url: pulumi.String("https://www.example.org"),
},
BrowserSteps: datadog.SyntheticsTestBrowserStepArray{
&datadog.SyntheticsTestBrowserStepArgs{
Name: pulumi.String("Check current url"),
Type: pulumi.String("assertCurrentUrl"),
Params: &datadog.SyntheticsTestBrowserStepParamsArgs{
Check: pulumi.String("contains"),
Value: pulumi.String("datadoghq"),
},
},
&datadog.SyntheticsTestBrowserStepArgs{
Name: pulumi.String("Test a downloaded file"),
Type: pulumi.String("assertFileDownload"),
Params: &datadog.SyntheticsTestBrowserStepParamsArgs{
File: pulumi.String(json0),
},
},
},
BrowserVariables: datadog.SyntheticsTestBrowserVariableArray{
&datadog.SyntheticsTestBrowserVariableArgs{
Type: pulumi.String("text"),
Name: pulumi.String("MY_PATTERN_VAR"),
Pattern: pulumi.String("{{numeric(3)}}"),
Example: pulumi.String("597"),
},
&datadog.SyntheticsTestBrowserVariableArgs{
Type: pulumi.String("email"),
Name: pulumi.String("MY_EMAIL_VAR"),
Pattern: pulumi.String("jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co"),
Example: pulumi.String("jd8-afe-ydv.4546132139@synthetics.dtdg.co"),
},
&datadog.SyntheticsTestBrowserVariableArgs{
Type: pulumi.String("global"),
Name: pulumi.String("MY_GLOBAL_VAR"),
Id: pulumi.String("76636cd1-82e2-4aeb-9cfe-51366a8198a2"),
},
},
OptionsList: &datadog.SyntheticsTestOptionsListArgs{
TickEvery: pulumi.Int(3600),
},
})
if err != nil {
return err
}
// Example Usage (Synthetics Mobile test)
// Create a new Datadog Synthetics Mobile test starting on https://www.example.org
_, err = datadog.NewSyntheticsTest(ctx, "test_mobile", &datadog.SyntheticsTestArgs{
Type: pulumi.String("mobile"),
Name: pulumi.String("A Mobile test on example.org"),
Status: pulumi.String("paused"),
Message: pulumi.String("Notify @datadog.user"),
Tags: pulumi.StringArray{
pulumi.String("foo:bar"),
pulumi.String("baz"),
},
ConfigVariables: datadog.SyntheticsTestConfigVariableArray{
&datadog.SyntheticsTestConfigVariableArgs{
Example: pulumi.String("123"),
Name: pulumi.String("VARIABLE_NAME"),
Pattern: pulumi.String("{{numeric(3)}}"),
Type: pulumi.String("text"),
Secure: pulumi.Bool(false),
},
},
ConfigInitialApplicationArguments: pulumi.StringMap{
"test_process_argument": pulumi.String("test1"),
},
DeviceIds: pulumi.StringArray{
pulumi.String("synthetics:mobile:device:apple_iphone_14_plus_ios_16"),
},
Locations: pulumi.StringArray{
pulumi.String("aws:eu-central-1"),
},
MobileOptionsList: &datadog.SyntheticsTestMobileOptionsListArgs{
MinFailureDuration: pulumi.Int(0),
Retry: &datadog.SyntheticsTestMobileOptionsListRetryArgs{
Count: pulumi.Int(0),
Interval: pulumi.Int(300),
},
TickEvery: pulumi.Int(43200),
Scheduling: &datadog.SyntheticsTestMobileOptionsListSchedulingArgs{
Timeframes: datadog.SyntheticsTestMobileOptionsListSchedulingTimeframeArray{
&datadog.SyntheticsTestMobileOptionsListSchedulingTimeframeArgs{
Day: pulumi.Int(5),
From: pulumi.String("07:00"),
To: pulumi.String("16:00"),
},
&datadog.SyntheticsTestMobileOptionsListSchedulingTimeframeArgs{
Day: pulumi.Int(7),
From: pulumi.String("07:00"),
To: pulumi.String("16:00"),
},
},
Timezone: pulumi.String("UTC"),
},
MonitorName: pulumi.String("mobile-test-monitor"),
MonitorOptions: &datadog.SyntheticsTestMobileOptionsListMonitorOptionsArgs{
RenotifyInterval: pulumi.Int(10),
EscalationMessage: pulumi.String("test escalation message"),
RenotifyOccurrences: pulumi.Int(3),
NotificationPresetName: pulumi.String("show_all"),
},
MonitorPriority: pulumi.Int(5),
RestrictedRoles: pulumi.StringArray{
pulumi.String("role1"),
pulumi.String("role2"),
},
Bindings: datadog.SyntheticsTestMobileOptionsListBindingArray{
&datadog.SyntheticsTestMobileOptionsListBindingArgs{
Principals: pulumi.StringArray{
pulumi.String("org:8dee7c38-0000-aaaa-zzzz-8b5a08d3b091"),
pulumi.String("team:3a0cdd74-0000-aaaa-zzzz-da7ad0900002"),
},
Relation: pulumi.String("editor"),
},
},
Ci: &datadog.SyntheticsTestMobileOptionsListCiArgs{
ExecutionRule: pulumi.String("blocking"),
},
DefaultStepTimeout: pulumi.Int(10),
DeviceIds: pulumi.StringArray{
pulumi.String("synthetics:mobile:device:apple_iphone_14_plus_ios_16"),
},
NoScreenshot: pulumi.Bool(true),
AllowApplicationCrash: pulumi.Bool(false),
DisableAutoAcceptAlert: pulumi.Bool(true),
MobileApplication: &datadog.SyntheticsTestMobileOptionsListMobileApplicationArgs{
ApplicationId: pulumi.String("5f055d15-0000-aaaa-zzzz-6739f83346aa"),
ReferenceId: pulumi.String("434d4719-0000-aaaa-zzzz-31082b544718"),
ReferenceType: pulumi.String("version"),
},
},
MobileSteps: datadog.SyntheticsTestMobileStepArray{
&datadog.SyntheticsTestMobileStepArgs{
Name: pulumi.String("Tap on StaticText \"Tap\""),
Params: &datadog.SyntheticsTestMobileStepParamsArgs{
Element: &datadog.SyntheticsTestMobileStepParamsElementArgs{
Context: pulumi.String("NATIVE_APP"),
ViewName: pulumi.String("StaticText"),
ContextType: pulumi.String("native"),
TextContent: pulumi.String("Tap"),
MultiLocator: pulumi.StringMap{},
RelativePosition: &datadog.SyntheticsTestMobileStepParamsElementRelativePositionArgs{
X: pulumi.Float64(0.07256155303030302),
Y: pulumi.Float64(0.41522381756756754),
},
UserLocator: &datadog.SyntheticsTestMobileStepParamsElementUserLocatorArgs{
FailTestOnCannotLocate: pulumi.Bool(false),
Values: datadog.SyntheticsTestMobileStepParamsElementUserLocatorValueArray{
&datadog.SyntheticsTestMobileStepParamsElementUserLocatorValueArgs{
Type: pulumi.String("id"),
Value: pulumi.String("some_id"),
},
},
},
ElementDescription: pulumi.String("<XCUIElementTypeStaticText value=\"Tap\" name=\"Tap\" label=\"Tap\">"),
},
},
Timeout: pulumi.Int(100),
Type: pulumi.String("tap"),
AllowFailure: pulumi.Bool(false),
IsCritical: pulumi.Bool(true),
NoScreenshot: pulumi.Bool(false),
HasNewStepElement: pulumi.Bool(false),
},
&datadog.SyntheticsTestMobileStepArgs{
Name: pulumi.String("Test View \"Tap\" content"),
Params: &datadog.SyntheticsTestMobileStepParamsArgs{
Check: pulumi.String("contains"),
Value: pulumi.String("Tap"),
Element: &datadog.SyntheticsTestMobileStepParamsElementArgs{
Context: pulumi.String("NATIVE_APP"),
ViewName: pulumi.String("View"),
ContextType: pulumi.String("native"),
TextContent: pulumi.String("Tap"),
MultiLocator: pulumi.StringMap{},
RelativePosition: &datadog.SyntheticsTestMobileStepParamsElementRelativePositionArgs{
X: pulumi.Float64(0.27660448306074764),
Y: pulumi.Float64(0.6841517857142857),
},
UserLocator: &datadog.SyntheticsTestMobileStepParamsElementUserLocatorArgs{
FailTestOnCannotLocate: pulumi.Bool(false),
Values: datadog.SyntheticsTestMobileStepParamsElementUserLocatorValueArray{
&datadog.SyntheticsTestMobileStepParamsElementUserLocatorValueArgs{
Type: pulumi.String("id"),
Value: pulumi.String("some_id"),
},
},
},
ElementDescription: pulumi.String("<XCUIElementTypeOther name=\"Tap\" label=\"Tap\">"),
},
},
Timeout: pulumi.Int(100),
Type: pulumi.String("assertElementContent"),
AllowFailure: pulumi.Bool(false),
IsCritical: pulumi.Bool(true),
NoScreenshot: pulumi.Bool(false),
HasNewStepElement: pulumi.Bool(false),
},
},
})
if err != nil {
return err
}
// Example Usage (GRPC API behavior check test)
// Create a new Datadog GRPC API test calling host example.org on port 443
// targeting service `greeter.Greeter` with the method `SayHello`
// and the message {"name": "John"}
_, err = datadog.NewSyntheticsTest(ctx, "test_grpc_unary", &datadog.SyntheticsTestArgs{
Name: pulumi.String("GRPC API behavior check test"),
Type: pulumi.String("api"),
Subtype: pulumi.String("grpc"),
Status: pulumi.String("live"),
Locations: pulumi.StringArray{
pulumi.String("aws:eu-central-1"),
},
Tags: pulumi.StringArray{
pulumi.String("foo:bar"),
pulumi.String("foo"),
pulumi.String("env:test"),
},
RequestDefinition: &datadog.SyntheticsTestRequestDefinitionArgs{
Host: pulumi.String("example.org"),
Port: pulumi.String("443"),
CallType: pulumi.String("unary"),
Service: pulumi.String("greeter.Greeter"),
Method: pulumi.String("SayHello"),
Message: pulumi.String("{\"name\": \"John\"}"),
PlainProtoFile: pulumi.String(`syntax = "proto3";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
`),
},
RequestMetadata: pulumi.StringMap{
"header": pulumi.String("value"),
},
Assertions: datadog.SyntheticsTestAssertionArray{
&datadog.SyntheticsTestAssertionArgs{
Type: pulumi.String("responseTime"),
Operator: pulumi.String("lessThan"),
Target: pulumi.String("2000"),
},
&datadog.SyntheticsTestAssertionArgs{
Operator: pulumi.String("is"),
Type: pulumi.String("grpcHealthcheckStatus"),
Target: pulumi.String("1"),
},
&datadog.SyntheticsTestAssertionArgs{
Operator: pulumi.String("is"),
Type: pulumi.String("grpcProto"),
Target: pulumi.String("proto target"),
},
&datadog.SyntheticsTestAssertionArgs{
Operator: pulumi.String("is"),
Property: pulumi.String("property"),
Type: pulumi.String("grpcMetadata"),
Target: pulumi.String("123"),
},
},
OptionsList: &datadog.SyntheticsTestOptionsListArgs{
TickEvery: pulumi.Int(900),
},
})
if err != nil {
return err
}
// Example Usage (GRPC API health check test)
// Create a new Datadog GRPC API test calling host example.org on port 443
// testing the overall health of the service
_, err = datadog.NewSyntheticsTest(ctx, "test_grpc_health", &datadog.SyntheticsTestArgs{
Name: pulumi.String("GRPC API health check test"),
Type: pulumi.String("api"),
Subtype: pulumi.String("grpc"),
Status: pulumi.String("live"),
Locations: pulumi.StringArray{
pulumi.String("aws:eu-central-1"),
},
Tags: pulumi.StringArray{
pulumi.String("foo:bar"),
pulumi.String("foo"),
pulumi.String("env:test"),
},
RequestDefinition: &datadog.SyntheticsTestRequestDefinitionArgs{
Host: pulumi.String("example.org"),
Port: pulumi.String("443"),
CallType: pulumi.String("healthcheck"),
Service: pulumi.String("greeter.Greeter"),
},
Assertions: datadog.SyntheticsTestAssertionArray{
&datadog.SyntheticsTestAssertionArgs{
Type: pulumi.String("responseTime"),
Operator: pulumi.String("lessThan"),
Target: pulumi.String("2000"),
},
&datadog.SyntheticsTestAssertionArgs{
Operator: pulumi.String("is"),
Type: pulumi.String("grpcHealthcheckStatus"),
Target: pulumi.String("1"),
},
},
OptionsList: &datadog.SyntheticsTestOptionsListArgs{
TickEvery: pulumi.Int(900),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Datadog = Pulumi.Datadog;
return await Deployment.RunAsync(() =>
{
// Example Usage (Synthetics API test)
// Create a new Datadog Synthetics API/HTTP test on https://www.example.org
var testUptime = new Datadog.SyntheticsTest("test_uptime", new()
{
Name = "An Uptime test on example.org",
Type = "api",
Subtype = "http",
Status = "live",
Message = "Notify @pagerduty",
Locations = new[]
{
"aws:eu-central-1",
},
Tags = new[]
{
"foo:bar",
"foo",
"env:test",
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs
{
Method = "GET",
Url = "https://www.example.org",
},
RequestHeaders =
{
{ "Content-Type", "application/json" },
},
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Type = "statusCode",
Operator = "is",
Target = "200",
},
},
OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs
{
TickEvery = 900,
Retry = new Datadog.Inputs.SyntheticsTestOptionsListRetryArgs
{
Count = 2,
Interval = 300,
},
MonitorOptions = new Datadog.Inputs.SyntheticsTestOptionsListMonitorOptionsArgs
{
RenotifyInterval = 120,
},
},
});
// Example Usage (Authenticated API test)
// Create a new Datadog Synthetics API/HTTP test on https://www.example.org
var testApi = new Datadog.SyntheticsTest("test_api", new()
{
Name = "An API test on example.org",
Type = "api",
Subtype = "http",
Status = "live",
Message = "Notify @pagerduty",
Locations = new[]
{
"aws:eu-central-1",
},
Tags = new[]
{
"foo:bar",
"foo",
"env:test",
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs
{
Method = "GET",
Url = "https://www.example.org",
},
RequestHeaders =
{
{ "Content-Type", "application/json" },
{ "Authentication", "Token: 1234566789" },
},
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Type = "statusCode",
Operator = "is",
Target = "200",
},
},
OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs
{
TickEvery = 900,
Retry = new Datadog.Inputs.SyntheticsTestOptionsListRetryArgs
{
Count = 2,
Interval = 300,
},
MonitorOptions = new Datadog.Inputs.SyntheticsTestOptionsListMonitorOptionsArgs
{
RenotifyInterval = 120,
},
},
});
// Example Usage (Synthetics SSL test)
// Create a new Datadog Synthetics API/SSL test on example.org
var testSsl = new Datadog.SyntheticsTest("test_ssl", new()
{
Name = "An API test on example.org",
Type = "api",
Subtype = "ssl",
Status = "live",
Message = "Notify @pagerduty",
Locations = new[]
{
"aws:eu-central-1",
},
Tags = new[]
{
"foo:bar",
"foo",
"env:test",
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs
{
Host = "example.org",
Port = "443",
},
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Type = "certificate",
Operator = "isInMoreThan",
Target = "30",
},
},
OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs
{
TickEvery = 900,
AcceptSelfSigned = true,
},
});
// Example Usage (Synthetics TCP test)
// Create a new Datadog Synthetics API/TCP test on example.org
var testTcp = new Datadog.SyntheticsTest("test_tcp", new()
{
Name = "An API test on example.org",
Type = "api",
Subtype = "tcp",
Status = "live",
Message = "Notify @pagerduty",
Locations = new[]
{
"aws:eu-central-1",
},
Tags = new[]
{
"foo:bar",
"foo",
"env:test",
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs
{
Host = "example.org",
Port = "443",
},
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Type = "responseTime",
Operator = "lessThan",
Target = "2000",
},
},
ConfigVariables = new[]
{
new Datadog.Inputs.SyntheticsTestConfigVariableArgs
{
Type = "global",
Name = "MY_GLOBAL_VAR",
Id = "76636cd1-82e2-4aeb-9cfe-51366a8198a2",
},
},
OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs
{
TickEvery = 900,
},
});
// Example Usage (Synthetics DNS test)
// Create a new Datadog Synthetics API/DNS test on example.org
var testDns = new Datadog.SyntheticsTest("test_dns", new()
{
Name = "An API test on example.org",
Type = "api",
Subtype = "dns",
Status = "live",
Message = "Notify @pagerduty",
Locations = new[]
{
"aws:eu-central-1",
},
Tags = new[]
{
"foo:bar",
"foo",
"env:test",
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs
{
Host = "example.org",
},
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Type = "recordSome",
Operator = "is",
Property = "A",
Target = "0.0.0.0",
},
},
OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs
{
TickEvery = 900,
},
});
// Example Usage (Synthetics Multistep API test)
// Create a new Datadog Synthetics Multistep API test
var testMultiStep = new Datadog.SyntheticsTest("test_multi_step", new()
{
Name = "Multistep API test",
Type = "api",
Subtype = "multi",
Status = "live",
Locations = new[]
{
"aws:eu-central-1",
},
Tags = new[]
{
"foo:bar",
"foo",
"env:test",
},
ApiSteps = new[]
{
new Datadog.Inputs.SyntheticsTestApiStepArgs
{
Name = "An API test on example.org",
Subtype = "http",
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs
{
Type = "statusCode",
Operator = "is",
Target = "200",
},
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs
{
Method = "GET",
Url = "https://www.example.org",
},
RequestHeaders =
{
{ "Content-Type", "application/json" },
{ "Authentication", "Token: 1234566789" },
},
},
new Datadog.Inputs.SyntheticsTestApiStepArgs
{
Name = "An API test on example.org",
Subtype = "http",
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs
{
Type = "statusCode",
Operator = "is",
Target = "200",
},
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs
{
Method = "GET",
Url = "http://example.org",
},
},
new Datadog.Inputs.SyntheticsTestApiStepArgs
{
Name = "A gRPC health check on example.org",
Subtype = "grpc",
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs
{
Type = "statusCode",
Operator = "is",
Target = "200",
},
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs
{
Host = "example.org",
Port = "443",
CallType = "healthcheck",
Service = "greeter.Greeter",
},
},
new Datadog.Inputs.SyntheticsTestApiStepArgs
{
Name = "A gRPC behavior check on example.org",
Subtype = "grpc",
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs
{
Type = "statusCode",
Operator = "is",
Target = "200",
},
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs
{
Host = "example.org",
Port = "443",
CallType = "unary",
Service = "greeter.Greeter",
Method = "SayHello",
Message = "{\"name\": \"John\"}",
PlainProtoFile = @"syntax = ""proto3"";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
",
},
},
},
OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs
{
TickEvery = 900,
AcceptSelfSigned = true,
},
});
// Example Usage (Synthetics Browser test)
// Create a new Datadog Synthetics Browser test starting on https://www.example.org
var testBrowser = new Datadog.SyntheticsTest("test_browser", new()
{
Name = "A Browser test on example.org",
Type = "browser",
Status = "paused",
Message = "Notify @qa",
DeviceIds = new[]
{
"laptop_large",
},
Locations = new[]
{
"aws:eu-central-1",
},
Tags = new[] {},
RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs
{
Method = "GET",
Url = "https://www.example.org",
},
BrowserSteps = new[]
{
new Datadog.Inputs.SyntheticsTestBrowserStepArgs
{
Name = "Check current url",
Type = "assertCurrentUrl",
Params = new Datadog.Inputs.SyntheticsTestBrowserStepParamsArgs
{
Check = "contains",
Value = "datadoghq",
},
},
new Datadog.Inputs.SyntheticsTestBrowserStepArgs
{
Name = "Test a downloaded file",
Type = "assertFileDownload",
Params = new Datadog.Inputs.SyntheticsTestBrowserStepParamsArgs
{
File = JsonSerializer.Serialize(new Dictionary<string, object?>
{
["md5"] = "abcdef1234567890",
["sizeCheck"] = new Dictionary<string, object?>
{
["type"] = "equals",
["value"] = 1,
},
["nameCheck"] = new Dictionary<string, object?>
{
["type"] = "contains",
["value"] = ".xls",
},
}),
},
},
},
BrowserVariables = new[]
{
new Datadog.Inputs.SyntheticsTestBrowserVariableArgs
{
Type = "text",
Name = "MY_PATTERN_VAR",
Pattern = "{{numeric(3)}}",
Example = "597",
},
new Datadog.Inputs.SyntheticsTestBrowserVariableArgs
{
Type = "email",
Name = "MY_EMAIL_VAR",
Pattern = "jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co",
Example = "jd8-afe-ydv.4546132139@synthetics.dtdg.co",
},
new Datadog.Inputs.SyntheticsTestBrowserVariableArgs
{
Type = "global",
Name = "MY_GLOBAL_VAR",
Id = "76636cd1-82e2-4aeb-9cfe-51366a8198a2",
},
},
OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs
{
TickEvery = 3600,
},
});
// Example Usage (Synthetics Mobile test)
// Create a new Datadog Synthetics Mobile test starting on https://www.example.org
var testMobile = new Datadog.SyntheticsTest("test_mobile", new()
{
Type = "mobile",
Name = "A Mobile test on example.org",
Status = "paused",
Message = "Notify @datadog.user",
Tags = new[]
{
"foo:bar",
"baz",
},
ConfigVariables = new[]
{
new Datadog.Inputs.SyntheticsTestConfigVariableArgs
{
Example = "123",
Name = "VARIABLE_NAME",
Pattern = "{{numeric(3)}}",
Type = "text",
Secure = false,
},
},
ConfigInitialApplicationArguments =
{
{ "test_process_argument", "test1" },
},
DeviceIds = new[]
{
"synthetics:mobile:device:apple_iphone_14_plus_ios_16",
},
Locations = new[]
{
"aws:eu-central-1",
},
MobileOptionsList = new Datadog.Inputs.SyntheticsTestMobileOptionsListArgs
{
MinFailureDuration = 0,
Retry = new Datadog.Inputs.SyntheticsTestMobileOptionsListRetryArgs
{
Count = 0,
Interval = 300,
},
TickEvery = 43200,
Scheduling = new Datadog.Inputs.SyntheticsTestMobileOptionsListSchedulingArgs
{
Timeframes = new[]
{
new Datadog.Inputs.SyntheticsTestMobileOptionsListSchedulingTimeframeArgs
{
Day = 5,
From = "07:00",
To = "16:00",
},
new Datadog.Inputs.SyntheticsTestMobileOptionsListSchedulingTimeframeArgs
{
Day = 7,
From = "07:00",
To = "16:00",
},
},
Timezone = "UTC",
},
MonitorName = "mobile-test-monitor",
MonitorOptions = new Datadog.Inputs.SyntheticsTestMobileOptionsListMonitorOptionsArgs
{
RenotifyInterval = 10,
EscalationMessage = "test escalation message",
RenotifyOccurrences = 3,
NotificationPresetName = "show_all",
},
MonitorPriority = 5,
RestrictedRoles = new[]
{
"role1",
"role2",
},
Bindings = new[]
{
new Datadog.Inputs.SyntheticsTestMobileOptionsListBindingArgs
{
Principals = new[]
{
"org:8dee7c38-0000-aaaa-zzzz-8b5a08d3b091",
"team:3a0cdd74-0000-aaaa-zzzz-da7ad0900002",
},
Relation = "editor",
},
},
Ci = new Datadog.Inputs.SyntheticsTestMobileOptionsListCiArgs
{
ExecutionRule = "blocking",
},
DefaultStepTimeout = 10,
DeviceIds = new[]
{
"synthetics:mobile:device:apple_iphone_14_plus_ios_16",
},
NoScreenshot = true,
AllowApplicationCrash = false,
DisableAutoAcceptAlert = true,
MobileApplication = new Datadog.Inputs.SyntheticsTestMobileOptionsListMobileApplicationArgs
{
ApplicationId = "5f055d15-0000-aaaa-zzzz-6739f83346aa",
ReferenceId = "434d4719-0000-aaaa-zzzz-31082b544718",
ReferenceType = "version",
},
},
MobileSteps = new[]
{
new Datadog.Inputs.SyntheticsTestMobileStepArgs
{
Name = "Tap on StaticText \"Tap\"",
Params = new Datadog.Inputs.SyntheticsTestMobileStepParamsArgs
{
Element = new Datadog.Inputs.SyntheticsTestMobileStepParamsElementArgs
{
Context = "NATIVE_APP",
ViewName = "StaticText",
ContextType = "native",
TextContent = "Tap",
MultiLocator = null,
RelativePosition = new Datadog.Inputs.SyntheticsTestMobileStepParamsElementRelativePositionArgs
{
X = 0.07256155303030302,
Y = 0.41522381756756754,
},
UserLocator = new Datadog.Inputs.SyntheticsTestMobileStepParamsElementUserLocatorArgs
{
FailTestOnCannotLocate = false,
Values = new[]
{
new Datadog.Inputs.SyntheticsTestMobileStepParamsElementUserLocatorValueArgs
{
Type = "id",
Value = "some_id",
},
},
},
ElementDescription = "<XCUIElementTypeStaticText value=\"Tap\" name=\"Tap\" label=\"Tap\">",
},
},
Timeout = 100,
Type = "tap",
AllowFailure = false,
IsCritical = true,
NoScreenshot = false,
HasNewStepElement = false,
},
new Datadog.Inputs.SyntheticsTestMobileStepArgs
{
Name = "Test View \"Tap\" content",
Params = new Datadog.Inputs.SyntheticsTestMobileStepParamsArgs
{
Check = "contains",
Value = "Tap",
Element = new Datadog.Inputs.SyntheticsTestMobileStepParamsElementArgs
{
Context = "NATIVE_APP",
ViewName = "View",
ContextType = "native",
TextContent = "Tap",
MultiLocator = null,
RelativePosition = new Datadog.Inputs.SyntheticsTestMobileStepParamsElementRelativePositionArgs
{
X = 0.27660448306074764,
Y = 0.6841517857142857,
},
UserLocator = new Datadog.Inputs.SyntheticsTestMobileStepParamsElementUserLocatorArgs
{
FailTestOnCannotLocate = false,
Values = new[]
{
new Datadog.Inputs.SyntheticsTestMobileStepParamsElementUserLocatorValueArgs
{
Type = "id",
Value = "some_id",
},
},
},
ElementDescription = "<XCUIElementTypeOther name=\"Tap\" label=\"Tap\">",
},
},
Timeout = 100,
Type = "assertElementContent",
AllowFailure = false,
IsCritical = true,
NoScreenshot = false,
HasNewStepElement = false,
},
},
});
// Example Usage (GRPC API behavior check test)
// Create a new Datadog GRPC API test calling host example.org on port 443
// targeting service `greeter.Greeter` with the method `SayHello`
// and the message {"name": "John"}
var testGrpcUnary = new Datadog.SyntheticsTest("test_grpc_unary", new()
{
Name = "GRPC API behavior check test",
Type = "api",
Subtype = "grpc",
Status = "live",
Locations = new[]
{
"aws:eu-central-1",
},
Tags = new[]
{
"foo:bar",
"foo",
"env:test",
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs
{
Host = "example.org",
Port = "443",
CallType = "unary",
Service = "greeter.Greeter",
Method = "SayHello",
Message = "{\"name\": \"John\"}",
PlainProtoFile = @"syntax = ""proto3"";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
",
},
RequestMetadata =
{
{ "header", "value" },
},
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Type = "responseTime",
Operator = "lessThan",
Target = "2000",
},
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Operator = "is",
Type = "grpcHealthcheckStatus",
Target = "1",
},
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Operator = "is",
Type = "grpcProto",
Target = "proto target",
},
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Operator = "is",
Property = "property",
Type = "grpcMetadata",
Target = "123",
},
},
OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs
{
TickEvery = 900,
},
});
// Example Usage (GRPC API health check test)
// Create a new Datadog GRPC API test calling host example.org on port 443
// testing the overall health of the service
var testGrpcHealth = new Datadog.SyntheticsTest("test_grpc_health", new()
{
Name = "GRPC API health check test",
Type = "api",
Subtype = "grpc",
Status = "live",
Locations = new[]
{
"aws:eu-central-1",
},
Tags = new[]
{
"foo:bar",
"foo",
"env:test",
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs
{
Host = "example.org",
Port = "443",
CallType = "healthcheck",
Service = "greeter.Greeter",
},
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Type = "responseTime",
Operator = "lessThan",
Target = "2000",
},
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Operator = "is",
Type = "grpcHealthcheckStatus",
Target = "1",
},
},
OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs
{
TickEvery = 900,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.datadog.SyntheticsTest;
import com.pulumi.datadog.SyntheticsTestArgs;
import com.pulumi.datadog.inputs.SyntheticsTestRequestDefinitionArgs;
import com.pulumi.datadog.inputs.SyntheticsTestAssertionArgs;
import com.pulumi.datadog.inputs.SyntheticsTestOptionsListArgs;
import com.pulumi.datadog.inputs.SyntheticsTestOptionsListRetryArgs;
import com.pulumi.datadog.inputs.SyntheticsTestOptionsListMonitorOptionsArgs;
import com.pulumi.datadog.inputs.SyntheticsTestConfigVariableArgs;
import com.pulumi.datadog.inputs.SyntheticsTestApiStepArgs;
import com.pulumi.datadog.inputs.SyntheticsTestApiStepRequestDefinitionArgs;
import com.pulumi.datadog.inputs.SyntheticsTestBrowserStepArgs;
import com.pulumi.datadog.inputs.SyntheticsTestBrowserStepParamsArgs;
import com.pulumi.datadog.inputs.SyntheticsTestBrowserVariableArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileOptionsListArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileOptionsListRetryArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileOptionsListSchedulingArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileOptionsListMonitorOptionsArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileOptionsListCiArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileOptionsListMobileApplicationArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileStepArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileStepParamsArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileStepParamsElementArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileStepParamsElementRelativePositionArgs;
import com.pulumi.datadog.inputs.SyntheticsTestMobileStepParamsElementUserLocatorArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Example Usage (Synthetics API test)
// Create a new Datadog Synthetics API/HTTP test on https://www.example.org
var testUptime = new SyntheticsTest("testUptime", SyntheticsTestArgs.builder()
.name("An Uptime test on example.org")
.type("api")
.subtype("http")
.status("live")
.message("Notify @pagerduty")
.locations("aws:eu-central-1")
.tags(
"foo:bar",
"foo",
"env:test")
.requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()
.method("GET")
.url("https://www.example.org")
.build())
.requestHeaders(Map.of("Content-Type", "application/json"))
.assertions(SyntheticsTestAssertionArgs.builder()
.type("statusCode")
.operator("is")
.target("200")
.build())
.optionsList(SyntheticsTestOptionsListArgs.builder()
.tickEvery(900)
.retry(SyntheticsTestOptionsListRetryArgs.builder()
.count(2)
.interval(300)
.build())
.monitorOptions(SyntheticsTestOptionsListMonitorOptionsArgs.builder()
.renotifyInterval(120)
.build())
.build())
.build());
// Example Usage (Authenticated API test)
// Create a new Datadog Synthetics API/HTTP test on https://www.example.org
var testApi = new SyntheticsTest("testApi", SyntheticsTestArgs.builder()
.name("An API test on example.org")
.type("api")
.subtype("http")
.status("live")
.message("Notify @pagerduty")
.locations("aws:eu-central-1")
.tags(
"foo:bar",
"foo",
"env:test")
.requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()
.method("GET")
.url("https://www.example.org")
.build())
.requestHeaders(Map.ofEntries(
Map.entry("Content-Type", "application/json"),
Map.entry("Authentication", "Token: 1234566789")
))
.assertions(SyntheticsTestAssertionArgs.builder()
.type("statusCode")
.operator("is")
.target("200")
.build())
.optionsList(SyntheticsTestOptionsListArgs.builder()
.tickEvery(900)
.retry(SyntheticsTestOptionsListRetryArgs.builder()
.count(2)
.interval(300)
.build())
.monitorOptions(SyntheticsTestOptionsListMonitorOptionsArgs.builder()
.renotifyInterval(120)
.build())
.build())
.build());
// Example Usage (Synthetics SSL test)
// Create a new Datadog Synthetics API/SSL test on example.org
var testSsl = new SyntheticsTest("testSsl", SyntheticsTestArgs.builder()
.name("An API test on example.org")
.type("api")
.subtype("ssl")
.status("live")
.message("Notify @pagerduty")
.locations("aws:eu-central-1")
.tags(
"foo:bar",
"foo",
"env:test")
.requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()
.host("example.org")
.port("443")
.build())
.assertions(SyntheticsTestAssertionArgs.builder()
.type("certificate")
.operator("isInMoreThan")
.target(30)
.build())
.optionsList(SyntheticsTestOptionsListArgs.builder()
.tickEvery(900)
.acceptSelfSigned(true)
.build())
.build());
// Example Usage (Synthetics TCP test)
// Create a new Datadog Synthetics API/TCP test on example.org
var testTcp = new SyntheticsTest("testTcp", SyntheticsTestArgs.builder()
.name("An API test on example.org")
.type("api")
.subtype("tcp")
.status("live")
.message("Notify @pagerduty")
.locations("aws:eu-central-1")
.tags(
"foo:bar",
"foo",
"env:test")
.requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()
.host("example.org")
.port("443")
.build())
.assertions(SyntheticsTestAssertionArgs.builder()
.type("responseTime")
.operator("lessThan")
.target(2000)
.build())
.configVariables(SyntheticsTestConfigVariableArgs.builder()
.type("global")
.name("MY_GLOBAL_VAR")
.id("76636cd1-82e2-4aeb-9cfe-51366a8198a2")
.build())
.optionsList(SyntheticsTestOptionsListArgs.builder()
.tickEvery(900)
.build())
.build());
// Example Usage (Synthetics DNS test)
// Create a new Datadog Synthetics API/DNS test on example.org
var testDns = new SyntheticsTest("testDns", SyntheticsTestArgs.builder()
.name("An API test on example.org")
.type("api")
.subtype("dns")
.status("live")
.message("Notify @pagerduty")
.locations("aws:eu-central-1")
.tags(
"foo:bar",
"foo",
"env:test")
.requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()
.host("example.org")
.build())
.assertions(SyntheticsTestAssertionArgs.builder()
.type("recordSome")
.operator("is")
.property("A")
.target("0.0.0.0")
.build())
.optionsList(SyntheticsTestOptionsListArgs.builder()
.tickEvery(900)
.build())
.build());
// Example Usage (Synthetics Multistep API test)
// Create a new Datadog Synthetics Multistep API test
var testMultiStep = new SyntheticsTest("testMultiStep", SyntheticsTestArgs.builder()
.name("Multistep API test")
.type("api")
.subtype("multi")
.status("live")
.locations("aws:eu-central-1")
.tags(
"foo:bar",
"foo",
"env:test")
.apiSteps(
SyntheticsTestApiStepArgs.builder()
.name("An API test on example.org")
.subtype("http")
.assertions(SyntheticsTestApiStepAssertionArgs.builder()
.type("statusCode")
.operator("is")
.target("200")
.build())
.requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()
.method("GET")
.url("https://www.example.org")
.build())
.requestHeaders(Map.ofEntries(
Map.entry("Content-Type", "application/json"),
Map.entry("Authentication", "Token: 1234566789")
))
.build(),
SyntheticsTestApiStepArgs.builder()
.name("An API test on example.org")
.subtype("http")
.assertions(SyntheticsTestApiStepAssertionArgs.builder()
.type("statusCode")
.operator("is")
.target("200")
.build())
.requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()
.method("GET")
.url("http://example.org")
.build())
.build(),
SyntheticsTestApiStepArgs.builder()
.name("A gRPC health check on example.org")
.subtype("grpc")
.assertions(SyntheticsTestApiStepAssertionArgs.builder()
.type("statusCode")
.operator("is")
.target("200")
.build())
.requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()
.host("example.org")
.port("443")
.callType("healthcheck")
.service("greeter.Greeter")
.build())
.build(),
SyntheticsTestApiStepArgs.builder()
.name("A gRPC behavior check on example.org")
.subtype("grpc")
.assertions(SyntheticsTestApiStepAssertionArgs.builder()
.type("statusCode")
.operator("is")
.target("200")
.build())
.requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()
.host("example.org")
.port("443")
.callType("unary")
.service("greeter.Greeter")
.method("SayHello")
.message("{\"name\": \"John\"}")
.plainProtoFile("""
syntax = "proto3";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
""")
.build())
.build())
.optionsList(SyntheticsTestOptionsListArgs.builder()
.tickEvery(900)
.acceptSelfSigned(true)
.build())
.build());
// Example Usage (Synthetics Browser test)
// Create a new Datadog Synthetics Browser test starting on https://www.example.org
var testBrowser = new SyntheticsTest("testBrowser", SyntheticsTestArgs.builder()
.name("A Browser test on example.org")
.type("browser")
.status("paused")
.message("Notify @qa")
.deviceIds("laptop_large")
.locations("aws:eu-central-1")
.tags()
.requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()
.method("GET")
.url("https://www.example.org")
.build())
.browserSteps(
SyntheticsTestBrowserStepArgs.builder()
.name("Check current url")
.type("assertCurrentUrl")
.params(SyntheticsTestBrowserStepParamsArgs.builder()
.check("contains")
.value("datadoghq")
.build())
.build(),
SyntheticsTestBrowserStepArgs.builder()
.name("Test a downloaded file")
.type("assertFileDownload")
.params(SyntheticsTestBrowserStepParamsArgs.builder()
.file(serializeJson(
jsonObject(
jsonProperty("md5", "abcdef1234567890"),
jsonProperty("sizeCheck", jsonObject(
jsonProperty("type", "equals"),
jsonProperty("value", 1)
)),
jsonProperty("nameCheck", jsonObject(
jsonProperty("type", "contains"),
jsonProperty("value", ".xls")
))
)))
.build())
.build())
.browserVariables(
SyntheticsTestBrowserVariableArgs.builder()
.type("text")
.name("MY_PATTERN_VAR")
.pattern("{{numeric(3)}}")
.example("597")
.build(),
SyntheticsTestBrowserVariableArgs.builder()
.type("email")
.name("MY_EMAIL_VAR")
.pattern("jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co")
.example("jd8-afe-ydv.4546132139@synthetics.dtdg.co")
.build(),
SyntheticsTestBrowserVariableArgs.builder()
.type("global")
.name("MY_GLOBAL_VAR")
.id("76636cd1-82e2-4aeb-9cfe-51366a8198a2")
.build())
.optionsList(SyntheticsTestOptionsListArgs.builder()
.tickEvery(3600)
.build())
.build());
// Example Usage (Synthetics Mobile test)
// Create a new Datadog Synthetics Mobile test starting on https://www.example.org
var testMobile = new SyntheticsTest("testMobile", SyntheticsTestArgs.builder()
.type("mobile")
.name("A Mobile test on example.org")
.status("paused")
.message("Notify @datadog.user")
.tags(
"foo:bar",
"baz")
.configVariables(SyntheticsTestConfigVariableArgs.builder()
.example("123")
.name("VARIABLE_NAME")
.pattern("{{numeric(3)}}")
.type("text")
.secure(false)
.build())
.configInitialApplicationArguments(Map.of("test_process_argument", "test1"))
.deviceIds("synthetics:mobile:device:apple_iphone_14_plus_ios_16")
.locations("aws:eu-central-1")
.mobileOptionsList(SyntheticsTestMobileOptionsListArgs.builder()
.minFailureDuration(0)
.retry(SyntheticsTestMobileOptionsListRetryArgs.builder()
.count(0)
.interval(300)
.build())
.tickEvery(43200)
.scheduling(SyntheticsTestMobileOptionsListSchedulingArgs.builder()
.timeframes(
SyntheticsTestMobileOptionsListSchedulingTimeframeArgs.builder()
.day(5)
.from("07:00")
.to("16:00")
.build(),
SyntheticsTestMobileOptionsListSchedulingTimeframeArgs.builder()
.day(7)
.from("07:00")
.to("16:00")
.build())
.timezone("UTC")
.build())
.monitorName("mobile-test-monitor")
.monitorOptions(SyntheticsTestMobileOptionsListMonitorOptionsArgs.builder()
.renotifyInterval(10)
.escalationMessage("test escalation message")
.renotifyOccurrences(3)
.notificationPresetName("show_all")
.build())
.monitorPriority(5)
.restrictedRoles(
"role1",
"role2")
.bindings(SyntheticsTestMobileOptionsListBindingArgs.builder()
.principals(
"org:8dee7c38-0000-aaaa-zzzz-8b5a08d3b091",
"team:3a0cdd74-0000-aaaa-zzzz-da7ad0900002")
.relation("editor")
.build())
.ci(SyntheticsTestMobileOptionsListCiArgs.builder()
.executionRule("blocking")
.build())
.defaultStepTimeout(10)
.deviceIds("synthetics:mobile:device:apple_iphone_14_plus_ios_16")
.noScreenshot(true)
.allowApplicationCrash(false)
.disableAutoAcceptAlert(true)
.mobileApplication(SyntheticsTestMobileOptionsListMobileApplicationArgs.builder()
.applicationId("5f055d15-0000-aaaa-zzzz-6739f83346aa")
.referenceId("434d4719-0000-aaaa-zzzz-31082b544718")
.referenceType("version")
.build())
.build())
.mobileSteps(
SyntheticsTestMobileStepArgs.builder()
.name("Tap on StaticText \"Tap\"")
.params(SyntheticsTestMobileStepParamsArgs.builder()
.element(SyntheticsTestMobileStepParamsElementArgs.builder()
.context("NATIVE_APP")
.viewName("StaticText")
.contextType("native")
.textContent("Tap")
.multiLocator()
.relativePosition(SyntheticsTestMobileStepParamsElementRelativePositionArgs.builder()
.x(0.07256155303030302)
.y(0.41522381756756754)
.build())
.userLocator(SyntheticsTestMobileStepParamsElementUserLocatorArgs.builder()
.failTestOnCannotLocate(false)
.values(SyntheticsTestMobileStepParamsElementUserLocatorValueArgs.builder()
.type("id")
.value("some_id")
.build())
.build())
.elementDescription("<XCUIElementTypeStaticText value=\"Tap\" name=\"Tap\" label=\"Tap\">")
.build())
.build())
.timeout(100)
.type("tap")
.allowFailure(false)
.isCritical(true)
.noScreenshot(false)
.hasNewStepElement(false)
.build(),
SyntheticsTestMobileStepArgs.builder()
.name("Test View \"Tap\" content")
.params(SyntheticsTestMobileStepParamsArgs.builder()
.check("contains")
.value("Tap")
.element(SyntheticsTestMobileStepParamsElementArgs.builder()
.context("NATIVE_APP")
.viewName("View")
.contextType("native")
.textContent("Tap")
.multiLocator()
.relativePosition(SyntheticsTestMobileStepParamsElementRelativePositionArgs.builder()
.x(0.27660448306074764)
.y(0.6841517857142857)
.build())
.userLocator(SyntheticsTestMobileStepParamsElementUserLocatorArgs.builder()
.failTestOnCannotLocate(false)
.values(SyntheticsTestMobileStepParamsElementUserLocatorValueArgs.builder()
.type("id")
.value("some_id")
.build())
.build())
.elementDescription("<XCUIElementTypeOther name=\"Tap\" label=\"Tap\">")
.build())
.build())
.timeout(100)
.type("assertElementContent")
.allowFailure(false)
.isCritical(true)
.noScreenshot(false)
.hasNewStepElement(false)
.build())
.build());
// Example Usage (GRPC API behavior check test)
// Create a new Datadog GRPC API test calling host example.org on port 443
// targeting service `greeter.Greeter` with the method `SayHello`
// and the message {"name": "John"}
var testGrpcUnary = new SyntheticsTest("testGrpcUnary", SyntheticsTestArgs.builder()
.name("GRPC API behavior check test")
.type("api")
.subtype("grpc")
.status("live")
.locations("aws:eu-central-1")
.tags(
"foo:bar",
"foo",
"env:test")
.requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()
.host("example.org")
.port("443")
.callType("unary")
.service("greeter.Greeter")
.method("SayHello")
.message("{\"name\": \"John\"}")
.plainProtoFile("""
syntax = "proto3";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
""")
.build())
.requestMetadata(Map.of("header", "value"))
.assertions(
SyntheticsTestAssertionArgs.builder()
.type("responseTime")
.operator("lessThan")
.target("2000")
.build(),
SyntheticsTestAssertionArgs.builder()
.operator("is")
.type("grpcHealthcheckStatus")
.target(1)
.build(),
SyntheticsTestAssertionArgs.builder()
.operator("is")
.type("grpcProto")
.target("proto target")
.build(),
SyntheticsTestAssertionArgs.builder()
.operator("is")
.property("property")
.type("grpcMetadata")
.target("123")
.build())
.optionsList(SyntheticsTestOptionsListArgs.builder()
.tickEvery(900)
.build())
.build());
// Example Usage (GRPC API health check test)
// Create a new Datadog GRPC API test calling host example.org on port 443
// testing the overall health of the service
var testGrpcHealth = new SyntheticsTest("testGrpcHealth", SyntheticsTestArgs.builder()
.name("GRPC API health check test")
.type("api")
.subtype("grpc")
.status("live")
.locations("aws:eu-central-1")
.tags(
"foo:bar",
"foo",
"env:test")
.requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()
.host("example.org")
.port("443")
.callType("healthcheck")
.service("greeter.Greeter")
.build())
.assertions(
SyntheticsTestAssertionArgs.builder()
.type("responseTime")
.operator("lessThan")
.target("2000")
.build(),
SyntheticsTestAssertionArgs.builder()
.operator("is")
.type("grpcHealthcheckStatus")
.target(1)
.build())
.optionsList(SyntheticsTestOptionsListArgs.builder()
.tickEvery(900)
.build())
.build());
}
}
resources:
# Example Usage (Synthetics API test)
# Create a new Datadog Synthetics API/HTTP test on https://www.example.org
testUptime:
type: datadog:SyntheticsTest
name: test_uptime
properties:
name: An Uptime test on example.org
type: api
subtype: http
status: live
message: Notify @pagerduty
locations:
- aws:eu-central-1
tags:
- foo:bar
- foo
- env:test
requestDefinition:
method: GET
url: https://www.example.org
requestHeaders:
Content-Type: application/json
assertions:
- type: statusCode
operator: is
target: '200'
optionsList:
tickEvery: 900
retry:
count: 2
interval: 300
monitorOptions:
renotifyInterval: 120
# Example Usage (Authenticated API test)
# Create a new Datadog Synthetics API/HTTP test on https://www.example.org
testApi:
type: datadog:SyntheticsTest
name: test_api
properties:
name: An API test on example.org
type: api
subtype: http
status: live
message: Notify @pagerduty
locations:
- aws:eu-central-1
tags:
- foo:bar
- foo
- env:test
requestDefinition:
method: GET
url: https://www.example.org
requestHeaders:
Content-Type: application/json
Authentication: 'Token: 1234566789'
assertions:
- type: statusCode
operator: is
target: '200'
optionsList:
tickEvery: 900
retry:
count: 2
interval: 300
monitorOptions:
renotifyInterval: 120
# Example Usage (Synthetics SSL test)
# Create a new Datadog Synthetics API/SSL test on example.org
testSsl:
type: datadog:SyntheticsTest
name: test_ssl
properties:
name: An API test on example.org
type: api
subtype: ssl
status: live
message: Notify @pagerduty
locations:
- aws:eu-central-1
tags:
- foo:bar
- foo
- env:test
requestDefinition:
host: example.org
port: '443'
assertions:
- type: certificate
operator: isInMoreThan
target: 30
optionsList:
tickEvery: 900
acceptSelfSigned: true
# Example Usage (Synthetics TCP test)
# Create a new Datadog Synthetics API/TCP test on example.org
testTcp:
type: datadog:SyntheticsTest
name: test_tcp
properties:
name: An API test on example.org
type: api
subtype: tcp
status: live
message: Notify @pagerduty
locations:
- aws:eu-central-1
tags:
- foo:bar
- foo
- env:test
requestDefinition:
host: example.org
port: '443'
assertions:
- type: responseTime
operator: lessThan
target: 2000
configVariables:
- type: global
name: MY_GLOBAL_VAR
id: 76636cd1-82e2-4aeb-9cfe-51366a8198a2
optionsList:
tickEvery: 900
# Example Usage (Synthetics DNS test)
# Create a new Datadog Synthetics API/DNS test on example.org
testDns:
type: datadog:SyntheticsTest
name: test_dns
properties:
name: An API test on example.org
type: api
subtype: dns
status: live
message: Notify @pagerduty
locations:
- aws:eu-central-1
tags:
- foo:bar
- foo
- env:test
requestDefinition:
host: example.org
assertions:
- type: recordSome
operator: is
property: A
target: 0.0.0.0
optionsList:
tickEvery: 900
# Example Usage (Synthetics Multistep API test)
# Create a new Datadog Synthetics Multistep API test
testMultiStep:
type: datadog:SyntheticsTest
name: test_multi_step
properties:
name: Multistep API test
type: api
subtype: multi
status: live
locations:
- aws:eu-central-1
tags:
- foo:bar
- foo
- env:test
apiSteps:
- name: An API test on example.org
subtype: http
assertions:
- type: statusCode
operator: is
target: '200'
requestDefinition:
method: GET
url: https://www.example.org
requestHeaders:
Content-Type: application/json
Authentication: 'Token: 1234566789'
- name: An API test on example.org
subtype: http
assertions:
- type: statusCode
operator: is
target: '200'
requestDefinition:
method: GET
url: http://example.org
- name: A gRPC health check on example.org
subtype: grpc
assertions:
- type: statusCode
operator: is
target: '200'
requestDefinition:
host: example.org
port: '443'
callType: healthcheck
service: greeter.Greeter
- name: A gRPC behavior check on example.org
subtype: grpc
assertions:
- type: statusCode
operator: is
target: '200'
requestDefinition:
host: example.org
port: '443'
callType: unary
service: greeter.Greeter
method: SayHello
message: '{"name": "John"}'
plainProtoFile: |
syntax = "proto3";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
optionsList:
tickEvery: 900
acceptSelfSigned: true
# Example Usage (Synthetics Browser test)
# Create a new Datadog Synthetics Browser test starting on https://www.example.org
testBrowser:
type: datadog:SyntheticsTest
name: test_browser
properties:
name: A Browser test on example.org
type: browser
status: paused
message: Notify @qa
deviceIds:
- laptop_large
locations:
- aws:eu-central-1
tags: []
requestDefinition:
method: GET
url: https://www.example.org
browserSteps:
- name: Check current url
type: assertCurrentUrl
params:
check: contains
value: datadoghq
- name: Test a downloaded file
type: assertFileDownload
params:
file:
fn::toJSON:
md5: abcdef1234567890
sizeCheck:
type: equals
value: 1
nameCheck:
type: contains
value: .xls
browserVariables:
- type: text
name: MY_PATTERN_VAR
pattern: '{{numeric(3)}}'
example: '597'
- type: email
name: MY_EMAIL_VAR
pattern: jd8-afe-ydv.{{ numeric(10) }}@synthetics.dtdg.co
example: jd8-afe-ydv.4546132139@synthetics.dtdg.co
- type: global
name: MY_GLOBAL_VAR
id: 76636cd1-82e2-4aeb-9cfe-51366a8198a2
optionsList:
tickEvery: 3600
# Example Usage (Synthetics Mobile test)
# Create a new Datadog Synthetics Mobile test starting on https://www.example.org
testMobile:
type: datadog:SyntheticsTest
name: test_mobile
properties:
type: mobile
name: A Mobile test on example.org
status: paused
message: Notify @datadog.user
tags:
- foo:bar
- baz
configVariables:
- example: '123'
name: VARIABLE_NAME
pattern: '{{numeric(3)}}'
type: text
secure: false
configInitialApplicationArguments:
test_process_argument: test1
deviceIds:
- synthetics:mobile:device:apple_iphone_14_plus_ios_16
locations:
- aws:eu-central-1
mobileOptionsList:
minFailureDuration: 0
retry:
count: 0
interval: 300
tickEvery: 43200
scheduling:
timeframes:
- day: 5
from: 07:00
to: 16:00
- day: 7
from: 07:00
to: 16:00
timezone: UTC
monitorName: mobile-test-monitor
monitorOptions:
renotifyInterval: 10
escalationMessage: test escalation message
renotifyOccurrences: 3
notificationPresetName: show_all
monitorPriority: 5
restrictedRoles:
- role1
- role2
bindings:
- principals:
- org:8dee7c38-0000-aaaa-zzzz-8b5a08d3b091
- team:3a0cdd74-0000-aaaa-zzzz-da7ad0900002
relation: editor
ci:
executionRule: blocking
defaultStepTimeout: 10
deviceIds:
- synthetics:mobile:device:apple_iphone_14_plus_ios_16
noScreenshot: true
allowApplicationCrash: false
disableAutoAcceptAlert: true
mobileApplication:
applicationId: 5f055d15-0000-aaaa-zzzz-6739f83346aa
referenceId: 434d4719-0000-aaaa-zzzz-31082b544718
referenceType: version
mobileSteps:
- name: Tap on StaticText "Tap"
params:
element:
context: NATIVE_APP
viewName: StaticText
contextType: native
textContent: Tap
multiLocator: {}
relativePosition:
x: 0.07256155303030302
y: 0.41522381756756754
userLocator:
failTestOnCannotLocate: false
values:
- type: id
value: some_id
elementDescription: <XCUIElementTypeStaticText value="Tap" name="Tap" label="Tap">
timeout: 100
type: tap
allowFailure: false
isCritical: true
noScreenshot: false
hasNewStepElement: false
- name: Test View "Tap" content
params:
check: contains
value: Tap
element:
context: NATIVE_APP
viewName: View
contextType: native
textContent: Tap
multiLocator: {}
relativePosition:
x: 0.27660448306074764
y: 0.6841517857142857
userLocator:
failTestOnCannotLocate: false
values:
- type: id
value: some_id
elementDescription: <XCUIElementTypeOther name="Tap" label="Tap">
timeout: 100
type: assertElementContent
allowFailure: false
isCritical: true
noScreenshot: false
hasNewStepElement: false
# Example Usage (GRPC API behavior check test)
# Create a new Datadog GRPC API test calling host example.org on port 443
# targeting service `greeter.Greeter` with the method `SayHello`
# and the message {"name": "John"}
testGrpcUnary:
type: datadog:SyntheticsTest
name: test_grpc_unary
properties:
name: GRPC API behavior check test
type: api
subtype: grpc
status: live
locations:
- aws:eu-central-1
tags:
- foo:bar
- foo
- env:test
requestDefinition:
host: example.org
port: '443'
callType: unary
service: greeter.Greeter
method: SayHello
message: '{"name": "John"}'
plainProtoFile: |
syntax = "proto3";
package greeter;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
requestMetadata:
header: value
assertions:
- type: responseTime
operator: lessThan
target: '2000'
- operator: is
type: grpcHealthcheckStatus
target: 1
- operator: is
type: grpcProto
target: proto target
- operator: is
property: property
type: grpcMetadata
target: '123'
optionsList:
tickEvery: 900
# Example Usage (GRPC API health check test)
# Create a new Datadog GRPC API test calling host example.org on port 443
# testing the overall health of the service
testGrpcHealth:
type: datadog:SyntheticsTest
name: test_grpc_health
properties:
name: GRPC API health check test
type: api
subtype: grpc
status: live
locations:
- aws:eu-central-1
tags:
- foo:bar
- foo
- env:test
requestDefinition:
host: example.org
port: '443'
callType: healthcheck
service: greeter.Greeter
assertions:
- type: responseTime
operator: lessThan
target: '2000'
- operator: is
type: grpcHealthcheckStatus
target: 1
optionsList:
tickEvery: 900
Create SyntheticsTest Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new SyntheticsTest(name: string, args: SyntheticsTestArgs, opts?: CustomResourceOptions);
@overload
def SyntheticsTest(resource_name: str,
args: SyntheticsTestArgs,
opts: Optional[ResourceOptions] = None)
@overload
def SyntheticsTest(resource_name: str,
opts: Optional[ResourceOptions] = None,
locations: Optional[Sequence[str]] = None,
type: Optional[str] = None,
status: Optional[str] = None,
name: Optional[str] = None,
request_basicauth: Optional[SyntheticsTestRequestBasicauthArgs] = None,
request_client_certificate: Optional[SyntheticsTestRequestClientCertificateArgs] = None,
device_ids: Optional[Sequence[str]] = None,
force_delete_dependencies: Optional[bool] = None,
config_initial_application_arguments: Optional[Mapping[str, str]] = None,
message: Optional[str] = None,
mobile_options_list: Optional[SyntheticsTestMobileOptionsListArgs] = None,
mobile_steps: Optional[Sequence[SyntheticsTestMobileStepArgs]] = None,
browser_variables: Optional[Sequence[SyntheticsTestBrowserVariableArgs]] = None,
options_list: Optional[SyntheticsTestOptionsListArgs] = None,
api_steps: Optional[Sequence[SyntheticsTestApiStepArgs]] = None,
config_variables: Optional[Sequence[SyntheticsTestConfigVariableArgs]] = None,
request_definition: Optional[SyntheticsTestRequestDefinitionArgs] = None,
request_files: Optional[Sequence[SyntheticsTestRequestFileArgs]] = None,
request_headers: Optional[Mapping[str, str]] = None,
request_metadata: Optional[Mapping[str, str]] = None,
request_proxy: Optional[SyntheticsTestRequestProxyArgs] = None,
request_query: Optional[Mapping[str, str]] = None,
set_cookie: Optional[str] = None,
browser_steps: Optional[Sequence[SyntheticsTestBrowserStepArgs]] = None,
subtype: Optional[str] = None,
tags: Optional[Sequence[str]] = None,
assertions: Optional[Sequence[SyntheticsTestAssertionArgs]] = None,
variables_from_script: Optional[str] = None)
func NewSyntheticsTest(ctx *Context, name string, args SyntheticsTestArgs, opts ...ResourceOption) (*SyntheticsTest, error)
public SyntheticsTest(string name, SyntheticsTestArgs args, CustomResourceOptions? opts = null)
public SyntheticsTest(String name, SyntheticsTestArgs args)
public SyntheticsTest(String name, SyntheticsTestArgs args, CustomResourceOptions options)
type: datadog:SyntheticsTest
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args SyntheticsTestArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args SyntheticsTestArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args SyntheticsTestArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args SyntheticsTestArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args SyntheticsTestArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var syntheticsTestResource = new Datadog.SyntheticsTest("syntheticsTestResource", new()
{
Locations = new[]
{
"string",
},
Type = "string",
Status = "string",
Name = "string",
RequestBasicauth = new Datadog.Inputs.SyntheticsTestRequestBasicauthArgs
{
AccessKey = "string",
AccessTokenUrl = "string",
Audience = "string",
ClientId = "string",
ClientSecret = "string",
Domain = "string",
Password = "string",
Region = "string",
Resource = "string",
Scope = "string",
SecretKey = "string",
ServiceName = "string",
SessionToken = "string",
TokenApiAuthentication = "string",
Type = "string",
Username = "string",
Workstation = "string",
},
RequestClientCertificate = new Datadog.Inputs.SyntheticsTestRequestClientCertificateArgs
{
Cert = new Datadog.Inputs.SyntheticsTestRequestClientCertificateCertArgs
{
Content = "string",
Filename = "string",
},
Key = new Datadog.Inputs.SyntheticsTestRequestClientCertificateKeyArgs
{
Content = "string",
Filename = "string",
},
},
DeviceIds = new[]
{
"string",
},
ForceDeleteDependencies = false,
ConfigInitialApplicationArguments =
{
{ "string", "string" },
},
Message = "string",
MobileOptionsList = new Datadog.Inputs.SyntheticsTestMobileOptionsListArgs
{
DeviceIds = new[]
{
"string",
},
TickEvery = 0,
MobileApplication = new Datadog.Inputs.SyntheticsTestMobileOptionsListMobileApplicationArgs
{
ApplicationId = "string",
ReferenceId = "string",
ReferenceType = "string",
},
MonitorName = "string",
MonitorPriority = 0,
DisableAutoAcceptAlert = false,
MinFailureDuration = 0,
Ci = new Datadog.Inputs.SyntheticsTestMobileOptionsListCiArgs
{
ExecutionRule = "string",
},
AllowApplicationCrash = false,
MonitorOptions = new Datadog.Inputs.SyntheticsTestMobileOptionsListMonitorOptionsArgs
{
EscalationMessage = "string",
NotificationPresetName = "string",
RenotifyInterval = 0,
RenotifyOccurrences = 0,
},
DefaultStepTimeout = 0,
NoScreenshot = false,
RestrictedRoles = new[]
{
"string",
},
Retry = new Datadog.Inputs.SyntheticsTestMobileOptionsListRetryArgs
{
Count = 0,
Interval = 0,
},
Scheduling = new Datadog.Inputs.SyntheticsTestMobileOptionsListSchedulingArgs
{
Timeframes = new[]
{
new Datadog.Inputs.SyntheticsTestMobileOptionsListSchedulingTimeframeArgs
{
Day = 0,
From = "string",
To = "string",
},
},
Timezone = "string",
},
Bindings = new[]
{
new Datadog.Inputs.SyntheticsTestMobileOptionsListBindingArgs
{
Principals = new[]
{
"string",
},
Relation = "string",
},
},
Verbosity = 0,
},
MobileSteps = new[]
{
new Datadog.Inputs.SyntheticsTestMobileStepArgs
{
Name = "string",
Params = new Datadog.Inputs.SyntheticsTestMobileStepParamsArgs
{
Check = "string",
Delay = 0,
Direction = "string",
Element = new Datadog.Inputs.SyntheticsTestMobileStepParamsElementArgs
{
Context = "string",
ContextType = "string",
ElementDescription = "string",
MultiLocator =
{
{ "string", "string" },
},
RelativePosition = new Datadog.Inputs.SyntheticsTestMobileStepParamsElementRelativePositionArgs
{
X = 0,
Y = 0,
},
TextContent = "string",
UserLocator = new Datadog.Inputs.SyntheticsTestMobileStepParamsElementUserLocatorArgs
{
FailTestOnCannotLocate = false,
Values = new[]
{
new Datadog.Inputs.SyntheticsTestMobileStepParamsElementUserLocatorValueArgs
{
Type = "string",
Value = "string",
},
},
},
ViewName = "string",
},
Enable = false,
MaxScrolls = 0,
Positions = new[]
{
new Datadog.Inputs.SyntheticsTestMobileStepParamsPositionArgs
{
X = 0,
Y = 0,
},
},
SubtestPublicId = "string",
Value = "string",
Variable = new Datadog.Inputs.SyntheticsTestMobileStepParamsVariableArgs
{
Name = "string",
Example = "string",
},
WithEnter = false,
X = 0,
Y = 0,
},
Type = "string",
AllowFailure = false,
HasNewStepElement = false,
IsCritical = false,
NoScreenshot = false,
PublicId = "string",
Timeout = 0,
},
},
BrowserVariables = new[]
{
new Datadog.Inputs.SyntheticsTestBrowserVariableArgs
{
Name = "string",
Type = "string",
Example = "string",
Id = "string",
Pattern = "string",
Secure = false,
},
},
OptionsList = new Datadog.Inputs.SyntheticsTestOptionsListArgs
{
TickEvery = 0,
MinFailureDuration = 0,
RumSettings = new Datadog.Inputs.SyntheticsTestOptionsListRumSettingsArgs
{
IsEnabled = false,
ApplicationId = "string",
ClientTokenId = 0,
},
Ci = new Datadog.Inputs.SyntheticsTestOptionsListCiArgs
{
ExecutionRule = "string",
},
DisableCors = false,
DisableCsp = false,
FollowRedirects = false,
HttpVersion = "string",
MinLocationFailed = 0,
AllowInsecure = false,
CheckCertificateRevocation = false,
IgnoreServerCertificateError = false,
MonitorName = "string",
MonitorOptions = new Datadog.Inputs.SyntheticsTestOptionsListMonitorOptionsArgs
{
RenotifyInterval = 0,
},
MonitorPriority = 0,
NoScreenshot = false,
RestrictedRoles = new[]
{
"string",
},
Retry = new Datadog.Inputs.SyntheticsTestOptionsListRetryArgs
{
Count = 0,
Interval = 0,
},
AcceptSelfSigned = false,
Scheduling = new Datadog.Inputs.SyntheticsTestOptionsListSchedulingArgs
{
Timeframes = new[]
{
new Datadog.Inputs.SyntheticsTestOptionsListSchedulingTimeframeArgs
{
Day = 0,
From = "string",
To = "string",
},
},
Timezone = "string",
},
InitialNavigationTimeout = 0,
},
ApiSteps = new[]
{
new Datadog.Inputs.SyntheticsTestApiStepArgs
{
Name = "string",
RequestDefinition = new Datadog.Inputs.SyntheticsTestApiStepRequestDefinitionArgs
{
AllowInsecure = false,
Body = "string",
BodyType = "string",
CallType = "string",
CertificateDomains = new[]
{
"string",
},
DnsServer = "string",
DnsServerPort = "string",
FollowRedirects = false,
Host = "string",
HttpVersion = "string",
Message = "string",
Method = "string",
NoSavingResponseBody = false,
NumberOfPackets = 0,
PersistCookies = false,
PlainProtoFile = "string",
Port = "string",
Servername = "string",
Service = "string",
ShouldTrackHops = false,
Timeout = 0,
Url = "string",
},
RequestClientCertificate = new Datadog.Inputs.SyntheticsTestApiStepRequestClientCertificateArgs
{
Cert = new Datadog.Inputs.SyntheticsTestApiStepRequestClientCertificateCertArgs
{
Content = "string",
Filename = "string",
},
Key = new Datadog.Inputs.SyntheticsTestApiStepRequestClientCertificateKeyArgs
{
Content = "string",
Filename = "string",
},
},
ExtractedValues = new[]
{
new Datadog.Inputs.SyntheticsTestApiStepExtractedValueArgs
{
Name = "string",
Parser = new Datadog.Inputs.SyntheticsTestApiStepExtractedValueParserArgs
{
Type = "string",
Value = "string",
},
Type = "string",
Field = "string",
Secure = false,
},
},
IsCritical = false,
RequestFiles = new[]
{
new Datadog.Inputs.SyntheticsTestApiStepRequestFileArgs
{
Name = "string",
Size = 0,
Type = "string",
BucketKey = "string",
Content = "string",
OriginalFileName = "string",
},
},
RequestBasicauth = new Datadog.Inputs.SyntheticsTestApiStepRequestBasicauthArgs
{
AccessKey = "string",
AccessTokenUrl = "string",
Audience = "string",
ClientId = "string",
ClientSecret = "string",
Domain = "string",
Password = "string",
Region = "string",
Resource = "string",
Scope = "string",
SecretKey = "string",
ServiceName = "string",
SessionToken = "string",
TokenApiAuthentication = "string",
Type = "string",
Username = "string",
Workstation = "string",
},
ExitIfSucceed = false,
AllowFailure = false,
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestApiStepAssertionArgs
{
Type = "string",
Code = "string",
Operator = "string",
Property = "string",
Target = "string",
Targetjsonpath = new Datadog.Inputs.SyntheticsTestApiStepAssertionTargetjsonpathArgs
{
Jsonpath = "string",
Operator = "string",
Elementsoperator = "string",
Targetvalue = "string",
},
Targetjsonschema = new Datadog.Inputs.SyntheticsTestApiStepAssertionTargetjsonschemaArgs
{
Jsonschema = "string",
Metaschema = "string",
},
Targetxpath = new Datadog.Inputs.SyntheticsTestApiStepAssertionTargetxpathArgs
{
Operator = "string",
Xpath = "string",
Targetvalue = "string",
},
TimingsScope = "string",
},
},
RequestHeaders =
{
{ "string", "string" },
},
RequestMetadata =
{
{ "string", "string" },
},
RequestProxy = new Datadog.Inputs.SyntheticsTestApiStepRequestProxyArgs
{
Url = "string",
Headers =
{
{ "string", "string" },
},
},
RequestQuery =
{
{ "string", "string" },
},
Retry = new Datadog.Inputs.SyntheticsTestApiStepRetryArgs
{
Count = 0,
Interval = 0,
},
Subtype = "string",
Value = 0,
},
},
ConfigVariables = new[]
{
new Datadog.Inputs.SyntheticsTestConfigVariableArgs
{
Name = "string",
Type = "string",
Example = "string",
Id = "string",
Pattern = "string",
Secure = false,
},
},
RequestDefinition = new Datadog.Inputs.SyntheticsTestRequestDefinitionArgs
{
Body = "string",
BodyType = "string",
CallType = "string",
CertificateDomains = new[]
{
"string",
},
DnsServer = "string",
DnsServerPort = "string",
Host = "string",
Message = "string",
Method = "string",
NoSavingResponseBody = false,
NumberOfPackets = 0,
PersistCookies = false,
PlainProtoFile = "string",
Port = "string",
Servername = "string",
Service = "string",
ShouldTrackHops = false,
Timeout = 0,
Url = "string",
},
RequestFiles = new[]
{
new Datadog.Inputs.SyntheticsTestRequestFileArgs
{
Name = "string",
Size = 0,
Type = "string",
BucketKey = "string",
Content = "string",
OriginalFileName = "string",
},
},
RequestHeaders =
{
{ "string", "string" },
},
RequestMetadata =
{
{ "string", "string" },
},
RequestProxy = new Datadog.Inputs.SyntheticsTestRequestProxyArgs
{
Url = "string",
Headers =
{
{ "string", "string" },
},
},
RequestQuery =
{
{ "string", "string" },
},
SetCookie = "string",
BrowserSteps = new[]
{
new Datadog.Inputs.SyntheticsTestBrowserStepArgs
{
Name = "string",
Params = new Datadog.Inputs.SyntheticsTestBrowserStepParamsArgs
{
Attribute = "string",
Check = "string",
ClickType = "string",
Code = "string",
Delay = 0,
Element = "string",
ElementUserLocator = new Datadog.Inputs.SyntheticsTestBrowserStepParamsElementUserLocatorArgs
{
Value = new Datadog.Inputs.SyntheticsTestBrowserStepParamsElementUserLocatorValueArgs
{
Value = "string",
Type = "string",
},
FailTestOnCannotLocate = false,
},
Email = "string",
File = "string",
Files = "string",
Modifiers = new[]
{
"string",
},
PlayingTabId = "string",
Request = "string",
SubtestPublicId = "string",
Value = "string",
Variable = new Datadog.Inputs.SyntheticsTestBrowserStepParamsVariableArgs
{
Example = "string",
Name = "string",
},
WithClick = false,
X = 0,
Y = 0,
},
Type = "string",
AllowFailure = false,
AlwaysExecute = false,
ExitIfSucceed = false,
ForceElementUpdate = false,
IsCritical = false,
LocalKey = "string",
NoScreenshot = false,
PublicId = "string",
Timeout = 0,
},
},
Subtype = "string",
Tags = new[]
{
"string",
},
Assertions = new[]
{
new Datadog.Inputs.SyntheticsTestAssertionArgs
{
Type = "string",
Code = "string",
Operator = "string",
Property = "string",
Target = "string",
Targetjsonpath = new Datadog.Inputs.SyntheticsTestAssertionTargetjsonpathArgs
{
Jsonpath = "string",
Operator = "string",
Elementsoperator = "string",
Targetvalue = "string",
},
Targetjsonschema = new Datadog.Inputs.SyntheticsTestAssertionTargetjsonschemaArgs
{
Jsonschema = "string",
Metaschema = "string",
},
Targetxpath = new Datadog.Inputs.SyntheticsTestAssertionTargetxpathArgs
{
Operator = "string",
Xpath = "string",
Targetvalue = "string",
},
TimingsScope = "string",
},
},
VariablesFromScript = "string",
});
example, err := datadog.NewSyntheticsTest(ctx, "syntheticsTestResource", &datadog.SyntheticsTestArgs{
Locations: pulumi.StringArray{
pulumi.String("string"),
},
Type: pulumi.String("string"),
Status: pulumi.String("string"),
Name: pulumi.String("string"),
RequestBasicauth: &datadog.SyntheticsTestRequestBasicauthArgs{
AccessKey: pulumi.String("string"),
AccessTokenUrl: pulumi.String("string"),
Audience: pulumi.String("string"),
ClientId: pulumi.String("string"),
ClientSecret: pulumi.String("string"),
Domain: pulumi.String("string"),
Password: pulumi.String("string"),
Region: pulumi.String("string"),
Resource: pulumi.String("string"),
Scope: pulumi.String("string"),
SecretKey: pulumi.String("string"),
ServiceName: pulumi.String("string"),
SessionToken: pulumi.String("string"),
TokenApiAuthentication: pulumi.String("string"),
Type: pulumi.String("string"),
Username: pulumi.String("string"),
Workstation: pulumi.String("string"),
},
RequestClientCertificate: &datadog.SyntheticsTestRequestClientCertificateArgs{
Cert: &datadog.SyntheticsTestRequestClientCertificateCertArgs{
Content: pulumi.String("string"),
Filename: pulumi.String("string"),
},
Key: &datadog.SyntheticsTestRequestClientCertificateKeyArgs{
Content: pulumi.String("string"),
Filename: pulumi.String("string"),
},
},
DeviceIds: pulumi.StringArray{
pulumi.String("string"),
},
ForceDeleteDependencies: pulumi.Bool(false),
ConfigInitialApplicationArguments: pulumi.StringMap{
"string": pulumi.String("string"),
},
Message: pulumi.String("string"),
MobileOptionsList: &datadog.SyntheticsTestMobileOptionsListArgs{
DeviceIds: pulumi.StringArray{
pulumi.String("string"),
},
TickEvery: pulumi.Int(0),
MobileApplication: &datadog.SyntheticsTestMobileOptionsListMobileApplicationArgs{
ApplicationId: pulumi.String("string"),
ReferenceId: pulumi.String("string"),
ReferenceType: pulumi.String("string"),
},
MonitorName: pulumi.String("string"),
MonitorPriority: pulumi.Int(0),
DisableAutoAcceptAlert: pulumi.Bool(false),
MinFailureDuration: pulumi.Int(0),
Ci: &datadog.SyntheticsTestMobileOptionsListCiArgs{
ExecutionRule: pulumi.String("string"),
},
AllowApplicationCrash: pulumi.Bool(false),
MonitorOptions: &datadog.SyntheticsTestMobileOptionsListMonitorOptionsArgs{
EscalationMessage: pulumi.String("string"),
NotificationPresetName: pulumi.String("string"),
RenotifyInterval: pulumi.Int(0),
RenotifyOccurrences: pulumi.Int(0),
},
DefaultStepTimeout: pulumi.Int(0),
NoScreenshot: pulumi.Bool(false),
RestrictedRoles: pulumi.StringArray{
pulumi.String("string"),
},
Retry: &datadog.SyntheticsTestMobileOptionsListRetryArgs{
Count: pulumi.Int(0),
Interval: pulumi.Int(0),
},
Scheduling: &datadog.SyntheticsTestMobileOptionsListSchedulingArgs{
Timeframes: datadog.SyntheticsTestMobileOptionsListSchedulingTimeframeArray{
&datadog.SyntheticsTestMobileOptionsListSchedulingTimeframeArgs{
Day: pulumi.Int(0),
From: pulumi.String("string"),
To: pulumi.String("string"),
},
},
Timezone: pulumi.String("string"),
},
Bindings: datadog.SyntheticsTestMobileOptionsListBindingArray{
&datadog.SyntheticsTestMobileOptionsListBindingArgs{
Principals: pulumi.StringArray{
pulumi.String("string"),
},
Relation: pulumi.String("string"),
},
},
Verbosity: pulumi.Int(0),
},
MobileSteps: datadog.SyntheticsTestMobileStepArray{
&datadog.SyntheticsTestMobileStepArgs{
Name: pulumi.String("string"),
Params: &datadog.SyntheticsTestMobileStepParamsArgs{
Check: pulumi.String("string"),
Delay: pulumi.Int(0),
Direction: pulumi.String("string"),
Element: &datadog.SyntheticsTestMobileStepParamsElementArgs{
Context: pulumi.String("string"),
ContextType: pulumi.String("string"),
ElementDescription: pulumi.String("string"),
MultiLocator: pulumi.StringMap{
"string": pulumi.String("string"),
},
RelativePosition: &datadog.SyntheticsTestMobileStepParamsElementRelativePositionArgs{
X: pulumi.Float64(0),
Y: pulumi.Float64(0),
},
TextContent: pulumi.String("string"),
UserLocator: &datadog.SyntheticsTestMobileStepParamsElementUserLocatorArgs{
FailTestOnCannotLocate: pulumi.Bool(false),
Values: datadog.SyntheticsTestMobileStepParamsElementUserLocatorValueArray{
&datadog.SyntheticsTestMobileStepParamsElementUserLocatorValueArgs{
Type: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
},
ViewName: pulumi.String("string"),
},
Enable: pulumi.Bool(false),
MaxScrolls: pulumi.Int(0),
Positions: datadog.SyntheticsTestMobileStepParamsPositionArray{
&datadog.SyntheticsTestMobileStepParamsPositionArgs{
X: pulumi.Float64(0),
Y: pulumi.Float64(0),
},
},
SubtestPublicId: pulumi.String("string"),
Value: pulumi.String("string"),
Variable: &datadog.SyntheticsTestMobileStepParamsVariableArgs{
Name: pulumi.String("string"),
Example: pulumi.String("string"),
},
WithEnter: pulumi.Bool(false),
X: pulumi.Float64(0),
Y: pulumi.Float64(0),
},
Type: pulumi.String("string"),
AllowFailure: pulumi.Bool(false),
HasNewStepElement: pulumi.Bool(false),
IsCritical: pulumi.Bool(false),
NoScreenshot: pulumi.Bool(false),
PublicId: pulumi.String("string"),
Timeout: pulumi.Int(0),
},
},
BrowserVariables: datadog.SyntheticsTestBrowserVariableArray{
&datadog.SyntheticsTestBrowserVariableArgs{
Name: pulumi.String("string"),
Type: pulumi.String("string"),
Example: pulumi.String("string"),
Id: pulumi.String("string"),
Pattern: pulumi.String("string"),
Secure: pulumi.Bool(false),
},
},
OptionsList: &datadog.SyntheticsTestOptionsListArgs{
TickEvery: pulumi.Int(0),
MinFailureDuration: pulumi.Int(0),
RumSettings: &datadog.SyntheticsTestOptionsListRumSettingsArgs{
IsEnabled: pulumi.Bool(false),
ApplicationId: pulumi.String("string"),
ClientTokenId: pulumi.Int(0),
},
Ci: &datadog.SyntheticsTestOptionsListCiArgs{
ExecutionRule: pulumi.String("string"),
},
DisableCors: pulumi.Bool(false),
DisableCsp: pulumi.Bool(false),
FollowRedirects: pulumi.Bool(false),
HttpVersion: pulumi.String("string"),
MinLocationFailed: pulumi.Int(0),
AllowInsecure: pulumi.Bool(false),
CheckCertificateRevocation: pulumi.Bool(false),
IgnoreServerCertificateError: pulumi.Bool(false),
MonitorName: pulumi.String("string"),
MonitorOptions: &datadog.SyntheticsTestOptionsListMonitorOptionsArgs{
RenotifyInterval: pulumi.Int(0),
},
MonitorPriority: pulumi.Int(0),
NoScreenshot: pulumi.Bool(false),
RestrictedRoles: pulumi.StringArray{
pulumi.String("string"),
},
Retry: &datadog.SyntheticsTestOptionsListRetryArgs{
Count: pulumi.Int(0),
Interval: pulumi.Int(0),
},
AcceptSelfSigned: pulumi.Bool(false),
Scheduling: &datadog.SyntheticsTestOptionsListSchedulingArgs{
Timeframes: datadog.SyntheticsTestOptionsListSchedulingTimeframeArray{
&datadog.SyntheticsTestOptionsListSchedulingTimeframeArgs{
Day: pulumi.Int(0),
From: pulumi.String("string"),
To: pulumi.String("string"),
},
},
Timezone: pulumi.String("string"),
},
InitialNavigationTimeout: pulumi.Int(0),
},
ApiSteps: datadog.SyntheticsTestApiStepArray{
&datadog.SyntheticsTestApiStepArgs{
Name: pulumi.String("string"),
RequestDefinition: &datadog.SyntheticsTestApiStepRequestDefinitionArgs{
AllowInsecure: pulumi.Bool(false),
Body: pulumi.String("string"),
BodyType: pulumi.String("string"),
CallType: pulumi.String("string"),
CertificateDomains: pulumi.StringArray{
pulumi.String("string"),
},
DnsServer: pulumi.String("string"),
DnsServerPort: pulumi.String("string"),
FollowRedirects: pulumi.Bool(false),
Host: pulumi.String("string"),
HttpVersion: pulumi.String("string"),
Message: pulumi.String("string"),
Method: pulumi.String("string"),
NoSavingResponseBody: pulumi.Bool(false),
NumberOfPackets: pulumi.Int(0),
PersistCookies: pulumi.Bool(false),
PlainProtoFile: pulumi.String("string"),
Port: pulumi.String("string"),
Servername: pulumi.String("string"),
Service: pulumi.String("string"),
ShouldTrackHops: pulumi.Bool(false),
Timeout: pulumi.Int(0),
Url: pulumi.String("string"),
},
RequestClientCertificate: &datadog.SyntheticsTestApiStepRequestClientCertificateArgs{
Cert: &datadog.SyntheticsTestApiStepRequestClientCertificateCertArgs{
Content: pulumi.String("string"),
Filename: pulumi.String("string"),
},
Key: &datadog.SyntheticsTestApiStepRequestClientCertificateKeyArgs{
Content: pulumi.String("string"),
Filename: pulumi.String("string"),
},
},
ExtractedValues: datadog.SyntheticsTestApiStepExtractedValueArray{
&datadog.SyntheticsTestApiStepExtractedValueArgs{
Name: pulumi.String("string"),
Parser: &datadog.SyntheticsTestApiStepExtractedValueParserArgs{
Type: pulumi.String("string"),
Value: pulumi.String("string"),
},
Type: pulumi.String("string"),
Field: pulumi.String("string"),
Secure: pulumi.Bool(false),
},
},
IsCritical: pulumi.Bool(false),
RequestFiles: datadog.SyntheticsTestApiStepRequestFileArray{
&datadog.SyntheticsTestApiStepRequestFileArgs{
Name: pulumi.String("string"),
Size: pulumi.Int(0),
Type: pulumi.String("string"),
BucketKey: pulumi.String("string"),
Content: pulumi.String("string"),
OriginalFileName: pulumi.String("string"),
},
},
RequestBasicauth: &datadog.SyntheticsTestApiStepRequestBasicauthArgs{
AccessKey: pulumi.String("string"),
AccessTokenUrl: pulumi.String("string"),
Audience: pulumi.String("string"),
ClientId: pulumi.String("string"),
ClientSecret: pulumi.String("string"),
Domain: pulumi.String("string"),
Password: pulumi.String("string"),
Region: pulumi.String("string"),
Resource: pulumi.String("string"),
Scope: pulumi.String("string"),
SecretKey: pulumi.String("string"),
ServiceName: pulumi.String("string"),
SessionToken: pulumi.String("string"),
TokenApiAuthentication: pulumi.String("string"),
Type: pulumi.String("string"),
Username: pulumi.String("string"),
Workstation: pulumi.String("string"),
},
ExitIfSucceed: pulumi.Bool(false),
AllowFailure: pulumi.Bool(false),
Assertions: datadog.SyntheticsTestApiStepAssertionArray{
&datadog.SyntheticsTestApiStepAssertionArgs{
Type: pulumi.String("string"),
Code: pulumi.String("string"),
Operator: pulumi.String("string"),
Property: pulumi.String("string"),
Target: pulumi.String("string"),
Targetjsonpath: &datadog.SyntheticsTestApiStepAssertionTargetjsonpathArgs{
Jsonpath: pulumi.String("string"),
Operator: pulumi.String("string"),
Elementsoperator: pulumi.String("string"),
Targetvalue: pulumi.String("string"),
},
Targetjsonschema: &datadog.SyntheticsTestApiStepAssertionTargetjsonschemaArgs{
Jsonschema: pulumi.String("string"),
Metaschema: pulumi.String("string"),
},
Targetxpath: &datadog.SyntheticsTestApiStepAssertionTargetxpathArgs{
Operator: pulumi.String("string"),
Xpath: pulumi.String("string"),
Targetvalue: pulumi.String("string"),
},
TimingsScope: pulumi.String("string"),
},
},
RequestHeaders: pulumi.StringMap{
"string": pulumi.String("string"),
},
RequestMetadata: pulumi.StringMap{
"string": pulumi.String("string"),
},
RequestProxy: &datadog.SyntheticsTestApiStepRequestProxyArgs{
Url: pulumi.String("string"),
Headers: pulumi.StringMap{
"string": pulumi.String("string"),
},
},
RequestQuery: pulumi.StringMap{
"string": pulumi.String("string"),
},
Retry: &datadog.SyntheticsTestApiStepRetryArgs{
Count: pulumi.Int(0),
Interval: pulumi.Int(0),
},
Subtype: pulumi.String("string"),
Value: pulumi.Int(0),
},
},
ConfigVariables: datadog.SyntheticsTestConfigVariableArray{
&datadog.SyntheticsTestConfigVariableArgs{
Name: pulumi.String("string"),
Type: pulumi.String("string"),
Example: pulumi.String("string"),
Id: pulumi.String("string"),
Pattern: pulumi.String("string"),
Secure: pulumi.Bool(false),
},
},
RequestDefinition: &datadog.SyntheticsTestRequestDefinitionArgs{
Body: pulumi.String("string"),
BodyType: pulumi.String("string"),
CallType: pulumi.String("string"),
CertificateDomains: pulumi.StringArray{
pulumi.String("string"),
},
DnsServer: pulumi.String("string"),
DnsServerPort: pulumi.String("string"),
Host: pulumi.String("string"),
Message: pulumi.String("string"),
Method: pulumi.String("string"),
NoSavingResponseBody: pulumi.Bool(false),
NumberOfPackets: pulumi.Int(0),
PersistCookies: pulumi.Bool(false),
PlainProtoFile: pulumi.String("string"),
Port: pulumi.String("string"),
Servername: pulumi.String("string"),
Service: pulumi.String("string"),
ShouldTrackHops: pulumi.Bool(false),
Timeout: pulumi.Int(0),
Url: pulumi.String("string"),
},
RequestFiles: datadog.SyntheticsTestRequestFileArray{
&datadog.SyntheticsTestRequestFileArgs{
Name: pulumi.String("string"),
Size: pulumi.Int(0),
Type: pulumi.String("string"),
BucketKey: pulumi.String("string"),
Content: pulumi.String("string"),
OriginalFileName: pulumi.String("string"),
},
},
RequestHeaders: pulumi.StringMap{
"string": pulumi.String("string"),
},
RequestMetadata: pulumi.StringMap{
"string": pulumi.String("string"),
},
RequestProxy: &datadog.SyntheticsTestRequestProxyArgs{
Url: pulumi.String("string"),
Headers: pulumi.StringMap{
"string": pulumi.String("string"),
},
},
RequestQuery: pulumi.StringMap{
"string": pulumi.String("string"),
},
SetCookie: pulumi.String("string"),
BrowserSteps: datadog.SyntheticsTestBrowserStepArray{
&datadog.SyntheticsTestBrowserStepArgs{
Name: pulumi.String("string"),
Params: &datadog.SyntheticsTestBrowserStepParamsArgs{
Attribute: pulumi.String("string"),
Check: pulumi.String("string"),
ClickType: pulumi.String("string"),
Code: pulumi.String("string"),
Delay: pulumi.Int(0),
Element: pulumi.String("string"),
ElementUserLocator: &datadog.SyntheticsTestBrowserStepParamsElementUserLocatorArgs{
Value: &datadog.SyntheticsTestBrowserStepParamsElementUserLocatorValueArgs{
Value: pulumi.String("string"),
Type: pulumi.String("string"),
},
FailTestOnCannotLocate: pulumi.Bool(false),
},
Email: pulumi.String("string"),
File: pulumi.String("string"),
Files: pulumi.String("string"),
Modifiers: pulumi.StringArray{
pulumi.String("string"),
},
PlayingTabId: pulumi.String("string"),
Request: pulumi.String("string"),
SubtestPublicId: pulumi.String("string"),
Value: pulumi.String("string"),
Variable: &datadog.SyntheticsTestBrowserStepParamsVariableArgs{
Example: pulumi.String("string"),
Name: pulumi.String("string"),
},
WithClick: pulumi.Bool(false),
X: pulumi.Int(0),
Y: pulumi.Int(0),
},
Type: pulumi.String("string"),
AllowFailure: pulumi.Bool(false),
AlwaysExecute: pulumi.Bool(false),
ExitIfSucceed: pulumi.Bool(false),
ForceElementUpdate: pulumi.Bool(false),
IsCritical: pulumi.Bool(false),
LocalKey: pulumi.String("string"),
NoScreenshot: pulumi.Bool(false),
PublicId: pulumi.String("string"),
Timeout: pulumi.Int(0),
},
},
Subtype: pulumi.String("string"),
Tags: pulumi.StringArray{
pulumi.String("string"),
},
Assertions: datadog.SyntheticsTestAssertionArray{
&datadog.SyntheticsTestAssertionArgs{
Type: pulumi.String("string"),
Code: pulumi.String("string"),
Operator: pulumi.String("string"),
Property: pulumi.String("string"),
Target: pulumi.String("string"),
Targetjsonpath: &datadog.SyntheticsTestAssertionTargetjsonpathArgs{
Jsonpath: pulumi.String("string"),
Operator: pulumi.String("string"),
Elementsoperator: pulumi.String("string"),
Targetvalue: pulumi.String("string"),
},
Targetjsonschema: &datadog.SyntheticsTestAssertionTargetjsonschemaArgs{
Jsonschema: pulumi.String("string"),
Metaschema: pulumi.String("string"),
},
Targetxpath: &datadog.SyntheticsTestAssertionTargetxpathArgs{
Operator: pulumi.String("string"),
Xpath: pulumi.String("string"),
Targetvalue: pulumi.String("string"),
},
TimingsScope: pulumi.String("string"),
},
},
VariablesFromScript: pulumi.String("string"),
})
var syntheticsTestResource = new SyntheticsTest("syntheticsTestResource", SyntheticsTestArgs.builder()
.locations("string")
.type("string")
.status("string")
.name("string")
.requestBasicauth(SyntheticsTestRequestBasicauthArgs.builder()
.accessKey("string")
.accessTokenUrl("string")
.audience("string")
.clientId("string")
.clientSecret("string")
.domain("string")
.password("string")
.region("string")
.resource("string")
.scope("string")
.secretKey("string")
.serviceName("string")
.sessionToken("string")
.tokenApiAuthentication("string")
.type("string")
.username("string")
.workstation("string")
.build())
.requestClientCertificate(SyntheticsTestRequestClientCertificateArgs.builder()
.cert(SyntheticsTestRequestClientCertificateCertArgs.builder()
.content("string")
.filename("string")
.build())
.key(SyntheticsTestRequestClientCertificateKeyArgs.builder()
.content("string")
.filename("string")
.build())
.build())
.deviceIds("string")
.forceDeleteDependencies(false)
.configInitialApplicationArguments(Map.of("string", "string"))
.message("string")
.mobileOptionsList(SyntheticsTestMobileOptionsListArgs.builder()
.deviceIds("string")
.tickEvery(0)
.mobileApplication(SyntheticsTestMobileOptionsListMobileApplicationArgs.builder()
.applicationId("string")
.referenceId("string")
.referenceType("string")
.build())
.monitorName("string")
.monitorPriority(0)
.disableAutoAcceptAlert(false)
.minFailureDuration(0)
.ci(SyntheticsTestMobileOptionsListCiArgs.builder()
.executionRule("string")
.build())
.allowApplicationCrash(false)
.monitorOptions(SyntheticsTestMobileOptionsListMonitorOptionsArgs.builder()
.escalationMessage("string")
.notificationPresetName("string")
.renotifyInterval(0)
.renotifyOccurrences(0)
.build())
.defaultStepTimeout(0)
.noScreenshot(false)
.restrictedRoles("string")
.retry(SyntheticsTestMobileOptionsListRetryArgs.builder()
.count(0)
.interval(0)
.build())
.scheduling(SyntheticsTestMobileOptionsListSchedulingArgs.builder()
.timeframes(SyntheticsTestMobileOptionsListSchedulingTimeframeArgs.builder()
.day(0)
.from("string")
.to("string")
.build())
.timezone("string")
.build())
.bindings(SyntheticsTestMobileOptionsListBindingArgs.builder()
.principals("string")
.relation("string")
.build())
.verbosity(0)
.build())
.mobileSteps(SyntheticsTestMobileStepArgs.builder()
.name("string")
.params(SyntheticsTestMobileStepParamsArgs.builder()
.check("string")
.delay(0)
.direction("string")
.element(SyntheticsTestMobileStepParamsElementArgs.builder()
.context("string")
.contextType("string")
.elementDescription("string")
.multiLocator(Map.of("string", "string"))
.relativePosition(SyntheticsTestMobileStepParamsElementRelativePositionArgs.builder()
.x(0)
.y(0)
.build())
.textContent("string")
.userLocator(SyntheticsTestMobileStepParamsElementUserLocatorArgs.builder()
.failTestOnCannotLocate(false)
.values(SyntheticsTestMobileStepParamsElementUserLocatorValueArgs.builder()
.type("string")
.value("string")
.build())
.build())
.viewName("string")
.build())
.enable(false)
.maxScrolls(0)
.positions(SyntheticsTestMobileStepParamsPositionArgs.builder()
.x(0)
.y(0)
.build())
.subtestPublicId("string")
.value("string")
.variable(SyntheticsTestMobileStepParamsVariableArgs.builder()
.name("string")
.example("string")
.build())
.withEnter(false)
.x(0)
.y(0)
.build())
.type("string")
.allowFailure(false)
.hasNewStepElement(false)
.isCritical(false)
.noScreenshot(false)
.publicId("string")
.timeout(0)
.build())
.browserVariables(SyntheticsTestBrowserVariableArgs.builder()
.name("string")
.type("string")
.example("string")
.id("string")
.pattern("string")
.secure(false)
.build())
.optionsList(SyntheticsTestOptionsListArgs.builder()
.tickEvery(0)
.minFailureDuration(0)
.rumSettings(SyntheticsTestOptionsListRumSettingsArgs.builder()
.isEnabled(false)
.applicationId("string")
.clientTokenId(0)
.build())
.ci(SyntheticsTestOptionsListCiArgs.builder()
.executionRule("string")
.build())
.disableCors(false)
.disableCsp(false)
.followRedirects(false)
.httpVersion("string")
.minLocationFailed(0)
.allowInsecure(false)
.checkCertificateRevocation(false)
.ignoreServerCertificateError(false)
.monitorName("string")
.monitorOptions(SyntheticsTestOptionsListMonitorOptionsArgs.builder()
.renotifyInterval(0)
.build())
.monitorPriority(0)
.noScreenshot(false)
.restrictedRoles("string")
.retry(SyntheticsTestOptionsListRetryArgs.builder()
.count(0)
.interval(0)
.build())
.acceptSelfSigned(false)
.scheduling(SyntheticsTestOptionsListSchedulingArgs.builder()
.timeframes(SyntheticsTestOptionsListSchedulingTimeframeArgs.builder()
.day(0)
.from("string")
.to("string")
.build())
.timezone("string")
.build())
.initialNavigationTimeout(0)
.build())
.apiSteps(SyntheticsTestApiStepArgs.builder()
.name("string")
.requestDefinition(SyntheticsTestApiStepRequestDefinitionArgs.builder()
.allowInsecure(false)
.body("string")
.bodyType("string")
.callType("string")
.certificateDomains("string")
.dnsServer("string")
.dnsServerPort("string")
.followRedirects(false)
.host("string")
.httpVersion("string")
.message("string")
.method("string")
.noSavingResponseBody(false)
.numberOfPackets(0)
.persistCookies(false)
.plainProtoFile("string")
.port("string")
.servername("string")
.service("string")
.shouldTrackHops(false)
.timeout(0)
.url("string")
.build())
.requestClientCertificate(SyntheticsTestApiStepRequestClientCertificateArgs.builder()
.cert(SyntheticsTestApiStepRequestClientCertificateCertArgs.builder()
.content("string")
.filename("string")
.build())
.key(SyntheticsTestApiStepRequestClientCertificateKeyArgs.builder()
.content("string")
.filename("string")
.build())
.build())
.extractedValues(SyntheticsTestApiStepExtractedValueArgs.builder()
.name("string")
.parser(SyntheticsTestApiStepExtractedValueParserArgs.builder()
.type("string")
.value("string")
.build())
.type("string")
.field("string")
.secure(false)
.build())
.isCritical(false)
.requestFiles(SyntheticsTestApiStepRequestFileArgs.builder()
.name("string")
.size(0)
.type("string")
.bucketKey("string")
.content("string")
.originalFileName("string")
.build())
.requestBasicauth(SyntheticsTestApiStepRequestBasicauthArgs.builder()
.accessKey("string")
.accessTokenUrl("string")
.audience("string")
.clientId("string")
.clientSecret("string")
.domain("string")
.password("string")
.region("string")
.resource("string")
.scope("string")
.secretKey("string")
.serviceName("string")
.sessionToken("string")
.tokenApiAuthentication("string")
.type("string")
.username("string")
.workstation("string")
.build())
.exitIfSucceed(false)
.allowFailure(false)
.assertions(SyntheticsTestApiStepAssertionArgs.builder()
.type("string")
.code("string")
.operator("string")
.property("string")
.target("string")
.targetjsonpath(SyntheticsTestApiStepAssertionTargetjsonpathArgs.builder()
.jsonpath("string")
.operator("string")
.elementsoperator("string")
.targetvalue("string")
.build())
.targetjsonschema(SyntheticsTestApiStepAssertionTargetjsonschemaArgs.builder()
.jsonschema("string")
.metaschema("string")
.build())
.targetxpath(SyntheticsTestApiStepAssertionTargetxpathArgs.builder()
.operator("string")
.xpath("string")
.targetvalue("string")
.build())
.timingsScope("string")
.build())
.requestHeaders(Map.of("string", "string"))
.requestMetadata(Map.of("string", "string"))
.requestProxy(SyntheticsTestApiStepRequestProxyArgs.builder()
.url("string")
.headers(Map.of("string", "string"))
.build())
.requestQuery(Map.of("string", "string"))
.retry(SyntheticsTestApiStepRetryArgs.builder()
.count(0)
.interval(0)
.build())
.subtype("string")
.value(0)
.build())
.configVariables(SyntheticsTestConfigVariableArgs.builder()
.name("string")
.type("string")
.example("string")
.id("string")
.pattern("string")
.secure(false)
.build())
.requestDefinition(SyntheticsTestRequestDefinitionArgs.builder()
.body("string")
.bodyType("string")
.callType("string")
.certificateDomains("string")
.dnsServer("string")
.dnsServerPort("string")
.host("string")
.message("string")
.method("string")
.noSavingResponseBody(false)
.numberOfPackets(0)
.persistCookies(false)
.plainProtoFile("string")
.port("string")
.servername("string")
.service("string")
.shouldTrackHops(false)
.timeout(0)
.url("string")
.build())
.requestFiles(SyntheticsTestRequestFileArgs.builder()
.name("string")
.size(0)
.type("string")
.bucketKey("string")
.content("string")
.originalFileName("string")
.build())
.requestHeaders(Map.of("string", "string"))
.requestMetadata(Map.of("string", "string"))
.requestProxy(SyntheticsTestRequestProxyArgs.builder()
.url("string")
.headers(Map.of("string", "string"))
.build())
.requestQuery(Map.of("string", "string"))
.setCookie("string")
.browserSteps(SyntheticsTestBrowserStepArgs.builder()
.name("string")
.params(SyntheticsTestBrowserStepParamsArgs.builder()
.attribute("string")
.check("string")
.clickType("string")
.code("string")
.delay(0)
.element("string")
.elementUserLocator(SyntheticsTestBrowserStepParamsElementUserLocatorArgs.builder()
.value(SyntheticsTestBrowserStepParamsElementUserLocatorValueArgs.builder()
.value("string")
.type("string")
.build())
.failTestOnCannotLocate(false)
.build())
.email("string")
.file("string")
.files("string")
.modifiers("string")
.playingTabId("string")
.request("string")
.subtestPublicId("string")
.value("string")
.variable(SyntheticsTestBrowserStepParamsVariableArgs.builder()
.example("string")
.name("string")
.build())
.withClick(false)
.x(0)
.y(0)
.build())
.type("string")
.allowFailure(false)
.alwaysExecute(false)
.exitIfSucceed(false)
.forceElementUpdate(false)
.isCritical(false)
.localKey("string")
.noScreenshot(false)
.publicId("string")
.timeout(0)
.build())
.subtype("string")
.tags("string")
.assertions(SyntheticsTestAssertionArgs.builder()
.type("string")
.code("string")
.operator("string")
.property("string")
.target("string")
.targetjsonpath(SyntheticsTestAssertionTargetjsonpathArgs.builder()
.jsonpath("string")
.operator("string")
.elementsoperator("string")
.targetvalue("string")
.build())
.targetjsonschema(SyntheticsTestAssertionTargetjsonschemaArgs.builder()
.jsonschema("string")
.metaschema("string")
.build())
.targetxpath(SyntheticsTestAssertionTargetxpathArgs.builder()
.operator("string")
.xpath("string")
.targetvalue("string")
.build())
.timingsScope("string")
.build())
.variablesFromScript("string")
.build());
synthetics_test_resource = datadog.SyntheticsTest("syntheticsTestResource",
locations=["string"],
type="string",
status="string",
name="string",
request_basicauth={
"access_key": "string",
"access_token_url": "string",
"audience": "string",
"client_id": "string",
"client_secret": "string",
"domain": "string",
"password": "string",
"region": "string",
"resource": "string",
"scope": "string",
"secret_key": "string",
"service_name": "string",
"session_token": "string",
"token_api_authentication": "string",
"type": "string",
"username": "string",
"workstation": "string",
},
request_client_certificate={
"cert": {
"content": "string",
"filename": "string",
},
"key": {
"content": "string",
"filename": "string",
},
},
device_ids=["string"],
force_delete_dependencies=False,
config_initial_application_arguments={
"string": "string",
},
message="string",
mobile_options_list={
"device_ids": ["string"],
"tick_every": 0,
"mobile_application": {
"application_id": "string",
"reference_id": "string",
"reference_type": "string",
},
"monitor_name": "string",
"monitor_priority": 0,
"disable_auto_accept_alert": False,
"min_failure_duration": 0,
"ci": {
"execution_rule": "string",
},
"allow_application_crash": False,
"monitor_options": {
"escalation_message": "string",
"notification_preset_name": "string",
"renotify_interval": 0,
"renotify_occurrences": 0,
},
"default_step_timeout": 0,
"no_screenshot": False,
"restricted_roles": ["string"],
"retry": {
"count": 0,
"interval": 0,
},
"scheduling": {
"timeframes": [{
"day": 0,
"from_": "string",
"to": "string",
}],
"timezone": "string",
},
"bindings": [{
"principals": ["string"],
"relation": "string",
}],
"verbosity": 0,
},
mobile_steps=[{
"name": "string",
"params": {
"check": "string",
"delay": 0,
"direction": "string",
"element": {
"context": "string",
"context_type": "string",
"element_description": "string",
"multi_locator": {
"string": "string",
},
"relative_position": {
"x": 0,
"y": 0,
},
"text_content": "string",
"user_locator": {
"fail_test_on_cannot_locate": False,
"values": [{
"type": "string",
"value": "string",
}],
},
"view_name": "string",
},
"enable": False,
"max_scrolls": 0,
"positions": [{
"x": 0,
"y": 0,
}],
"subtest_public_id": "string",
"value": "string",
"variable": {
"name": "string",
"example": "string",
},
"with_enter": False,
"x": 0,
"y": 0,
},
"type": "string",
"allow_failure": False,
"has_new_step_element": False,
"is_critical": False,
"no_screenshot": False,
"public_id": "string",
"timeout": 0,
}],
browser_variables=[{
"name": "string",
"type": "string",
"example": "string",
"id": "string",
"pattern": "string",
"secure": False,
}],
options_list={
"tick_every": 0,
"min_failure_duration": 0,
"rum_settings": {
"is_enabled": False,
"application_id": "string",
"client_token_id": 0,
},
"ci": {
"execution_rule": "string",
},
"disable_cors": False,
"disable_csp": False,
"follow_redirects": False,
"http_version": "string",
"min_location_failed": 0,
"allow_insecure": False,
"check_certificate_revocation": False,
"ignore_server_certificate_error": False,
"monitor_name": "string",
"monitor_options": {
"renotify_interval": 0,
},
"monitor_priority": 0,
"no_screenshot": False,
"restricted_roles": ["string"],
"retry": {
"count": 0,
"interval": 0,
},
"accept_self_signed": False,
"scheduling": {
"timeframes": [{
"day": 0,
"from_": "string",
"to": "string",
}],
"timezone": "string",
},
"initial_navigation_timeout": 0,
},
api_steps=[{
"name": "string",
"request_definition": {
"allow_insecure": False,
"body": "string",
"body_type": "string",
"call_type": "string",
"certificate_domains": ["string"],
"dns_server": "string",
"dns_server_port": "string",
"follow_redirects": False,
"host": "string",
"http_version": "string",
"message": "string",
"method": "string",
"no_saving_response_body": False,
"number_of_packets": 0,
"persist_cookies": False,
"plain_proto_file": "string",
"port": "string",
"servername": "string",
"service": "string",
"should_track_hops": False,
"timeout": 0,
"url": "string",
},
"request_client_certificate": {
"cert": {
"content": "string",
"filename": "string",
},
"key": {
"content": "string",
"filename": "string",
},
},
"extracted_values": [{
"name": "string",
"parser": {
"type": "string",
"value": "string",
},
"type": "string",
"field": "string",
"secure": False,
}],
"is_critical": False,
"request_files": [{
"name": "string",
"size": 0,
"type": "string",
"bucket_key": "string",
"content": "string",
"original_file_name": "string",
}],
"request_basicauth": {
"access_key": "string",
"access_token_url": "string",
"audience": "string",
"client_id": "string",
"client_secret": "string",
"domain": "string",
"password": "string",
"region": "string",
"resource": "string",
"scope": "string",
"secret_key": "string",
"service_name": "string",
"session_token": "string",
"token_api_authentication": "string",
"type": "string",
"username": "string",
"workstation": "string",
},
"exit_if_succeed": False,
"allow_failure": False,
"assertions": [{
"type": "string",
"code": "string",
"operator": "string",
"property": "string",
"target": "string",
"targetjsonpath": {
"jsonpath": "string",
"operator": "string",
"elementsoperator": "string",
"targetvalue": "string",
},
"targetjsonschema": {
"jsonschema": "string",
"metaschema": "string",
},
"targetxpath": {
"operator": "string",
"xpath": "string",
"targetvalue": "string",
},
"timings_scope": "string",
}],
"request_headers": {
"string": "string",
},
"request_metadata": {
"string": "string",
},
"request_proxy": {
"url": "string",
"headers": {
"string": "string",
},
},
"request_query": {
"string": "string",
},
"retry": {
"count": 0,
"interval": 0,
},
"subtype": "string",
"value": 0,
}],
config_variables=[{
"name": "string",
"type": "string",
"example": "string",
"id": "string",
"pattern": "string",
"secure": False,
}],
request_definition={
"body": "string",
"body_type": "string",
"call_type": "string",
"certificate_domains": ["string"],
"dns_server": "string",
"dns_server_port": "string",
"host": "string",
"message": "string",
"method": "string",
"no_saving_response_body": False,
"number_of_packets": 0,
"persist_cookies": False,
"plain_proto_file": "string",
"port": "string",
"servername": "string",
"service": "string",
"should_track_hops": False,
"timeout": 0,
"url": "string",
},
request_files=[{
"name": "string",
"size": 0,
"type": "string",
"bucket_key": "string",
"content": "string",
"original_file_name": "string",
}],
request_headers={
"string": "string",
},
request_metadata={
"string": "string",
},
request_proxy={
"url": "string",
"headers": {
"string": "string",
},
},
request_query={
"string": "string",
},
set_cookie="string",
browser_steps=[{
"name": "string",
"params": {
"attribute": "string",
"check": "string",
"click_type": "string",
"code": "string",
"delay": 0,
"element": "string",
"element_user_locator": {
"value": {
"value": "string",
"type": "string",
},
"fail_test_on_cannot_locate": False,
},
"email": "string",
"file": "string",
"files": "string",
"modifiers": ["string"],
"playing_tab_id": "string",
"request": "string",
"subtest_public_id": "string",
"value": "string",
"variable": {
"example": "string",
"name": "string",
},
"with_click": False,
"x": 0,
"y": 0,
},
"type": "string",
"allow_failure": False,
"always_execute": False,
"exit_if_succeed": False,
"force_element_update": False,
"is_critical": False,
"local_key": "string",
"no_screenshot": False,
"public_id": "string",
"timeout": 0,
}],
subtype="string",
tags=["string"],
assertions=[{
"type": "string",
"code": "string",
"operator": "string",
"property": "string",
"target": "string",
"targetjsonpath": {
"jsonpath": "string",
"operator": "string",
"elementsoperator": "string",
"targetvalue": "string",
},
"targetjsonschema": {
"jsonschema": "string",
"metaschema": "string",
},
"targetxpath": {
"operator": "string",
"xpath": "string",
"targetvalue": "string",
},
"timings_scope": "string",
}],
variables_from_script="string")
const syntheticsTestResource = new datadog.SyntheticsTest("syntheticsTestResource", {
locations: ["string"],
type: "string",
status: "string",
name: "string",
requestBasicauth: {
accessKey: "string",
accessTokenUrl: "string",
audience: "string",
clientId: "string",
clientSecret: "string",
domain: "string",
password: "string",
region: "string",
resource: "string",
scope: "string",
secretKey: "string",
serviceName: "string",
sessionToken: "string",
tokenApiAuthentication: "string",
type: "string",
username: "string",
workstation: "string",
},
requestClientCertificate: {
cert: {
content: "string",
filename: "string",
},
key: {
content: "string",
filename: "string",
},
},
deviceIds: ["string"],
forceDeleteDependencies: false,
configInitialApplicationArguments: {
string: "string",
},
message: "string",
mobileOptionsList: {
deviceIds: ["string"],
tickEvery: 0,
mobileApplication: {
applicationId: "string",
referenceId: "string",
referenceType: "string",
},
monitorName: "string",
monitorPriority: 0,
disableAutoAcceptAlert: false,
minFailureDuration: 0,
ci: {
executionRule: "string",
},
allowApplicationCrash: false,
monitorOptions: {
escalationMessage: "string",
notificationPresetName: "string",
renotifyInterval: 0,
renotifyOccurrences: 0,
},
defaultStepTimeout: 0,
noScreenshot: false,
restrictedRoles: ["string"],
retry: {
count: 0,
interval: 0,
},
scheduling: {
timeframes: [{
day: 0,
from: "string",
to: "string",
}],
timezone: "string",
},
bindings: [{
principals: ["string"],
relation: "string",
}],
verbosity: 0,
},
mobileSteps: [{
name: "string",
params: {
check: "string",
delay: 0,
direction: "string",
element: {
context: "string",
contextType: "string",
elementDescription: "string",
multiLocator: {
string: "string",
},
relativePosition: {
x: 0,
y: 0,
},
textContent: "string",
userLocator: {
failTestOnCannotLocate: false,
values: [{
type: "string",
value: "string",
}],
},
viewName: "string",
},
enable: false,
maxScrolls: 0,
positions: [{
x: 0,
y: 0,
}],
subtestPublicId: "string",
value: "string",
variable: {
name: "string",
example: "string",
},
withEnter: false,
x: 0,
y: 0,
},
type: "string",
allowFailure: false,
hasNewStepElement: false,
isCritical: false,
noScreenshot: false,
publicId: "string",
timeout: 0,
}],
browserVariables: [{
name: "string",
type: "string",
example: "string",
id: "string",
pattern: "string",
secure: false,
}],
optionsList: {
tickEvery: 0,
minFailureDuration: 0,
rumSettings: {
isEnabled: false,
applicationId: "string",
clientTokenId: 0,
},
ci: {
executionRule: "string",
},
disableCors: false,
disableCsp: false,
followRedirects: false,
httpVersion: "string",
minLocationFailed: 0,
allowInsecure: false,
checkCertificateRevocation: false,
ignoreServerCertificateError: false,
monitorName: "string",
monitorOptions: {
renotifyInterval: 0,
},
monitorPriority: 0,
noScreenshot: false,
restrictedRoles: ["string"],
retry: {
count: 0,
interval: 0,
},
acceptSelfSigned: false,
scheduling: {
timeframes: [{
day: 0,
from: "string",
to: "string",
}],
timezone: "string",
},
initialNavigationTimeout: 0,
},
apiSteps: [{
name: "string",
requestDefinition: {
allowInsecure: false,
body: "string",
bodyType: "string",
callType: "string",
certificateDomains: ["string"],
dnsServer: "string",
dnsServerPort: "string",
followRedirects: false,
host: "string",
httpVersion: "string",
message: "string",
method: "string",
noSavingResponseBody: false,
numberOfPackets: 0,
persistCookies: false,
plainProtoFile: "string",
port: "string",
servername: "string",
service: "string",
shouldTrackHops: false,
timeout: 0,
url: "string",
},
requestClientCertificate: {
cert: {
content: "string",
filename: "string",
},
key: {
content: "string",
filename: "string",
},
},
extractedValues: [{
name: "string",
parser: {
type: "string",
value: "string",
},
type: "string",
field: "string",
secure: false,
}],
isCritical: false,
requestFiles: [{
name: <