Edit a Network Path test

PUT https://api.ap1.datadoghq.com/api/v2/synthetics/tests/network/{public_id}https://api.ap2.datadoghq.com/api/v2/synthetics/tests/network/{public_id}https://api.datadoghq.eu/api/v2/synthetics/tests/network/{public_id}https://api.ddog-gov.com/api/v2/synthetics/tests/network/{public_id}https://api.us2.ddog-gov.com/api/v2/synthetics/tests/network/{public_id}https://api.datadoghq.com/api/v2/synthetics/tests/network/{public_id}https://api.us3.datadoghq.com/api/v2/synthetics/tests/network/{public_id}https://api.us5.datadoghq.com/api/v2/synthetics/tests/network/{public_id}

Overview

This endpoint requires any of the following permissions:

  • synthetics_write
  • synthetics_create_edit_trigger

  • OAuth apps require the synthetics_write authorization scope to access this endpoint.

    Arguments

    Path Parameters

    Name

    Type

    Description

    public_id [required]

    string

    The public ID of the Network Path test to edit.

    Request

    Body Data (required)

    New Network Path test details to be saved.

    Expand All

    Field

    Type

    Description

    data [required]

    object

    Data object for creating or editing a Network Path test.

    attributes [required]

    object

    Object containing details about a Network Path test.

    config [required]

    object

    Configuration object for a Network Path test.

    assertions

    [ <oneOf>]

    Array of assertions used for the test.

    default:

    Option 1

    object

    Network latency assertion for a Network Path test.

    operator [required]

    enum

    Assertion operator to apply. Allowed enum values: is,isNot,lessThan,lessThanOrEqual,moreThan,moreThanOrEqual

    property [required]

    enum

    The associated assertion property. Allowed enum values: avg,max,min

    target [required]

    double

    Target value in milliseconds.

    type [required]

    enum

    Type of the latency assertion. Allowed enum values: latency

    default: latency

    Option 2

    object

    Multi-network hop assertion for a Network Path test.

    operator [required]

    enum

    Assertion operator to apply. Allowed enum values: is,isNot,lessThan,lessThanOrEqual,moreThan,moreThanOrEqual

    property [required]

    enum

    The associated assertion property. Allowed enum values: avg,max,min

    target [required]

    double

    Target value in number of hops.

    type [required]

    enum

    Type of the multi-network hop assertion. Allowed enum values: multiNetworkHop

    default: multiNetworkHop

    Option 3

    object

    Packet loss percentage assertion for a Network Path test.

    operator [required]

    enum

    Assertion operator to apply. Allowed enum values: is,isNot,lessThan,lessThanOrEqual,moreThan,moreThanOrEqual

    target [required]

    double

    Target value as a percentage (0 to 1).

    type [required]

    enum

    Type of the packet loss percentage assertion. Allowed enum values: packetLossPercentage

    default: packetLossPercentage

    Option 4

    object

    Jitter assertion for a Network Path test.

    operator [required]

    enum

    Assertion operator to apply. Allowed enum values: is,isNot,lessThan,lessThanOrEqual,moreThan,moreThanOrEqual

    target [required]

    double

    Target value in milliseconds.

    type [required]

    enum

    Type of the jitter assertion. Allowed enum values: jitter

    default: jitter

    request

    object

    Object describing the request for a Network Path test.

    destination_service

    string

    An optional label displayed for the destination host in the Network Path visualization.

    e2e_queries [required]

    int64

    The number of packets sent to probe the destination to measure packet loss, latency and jitter.

    host [required]

    string

    Host name to query.

    max_ttl [required]

    int64

    The maximum time-to-live (max number of hops) used in outgoing probe packets.

    port

    int64

    For TCP or UDP tests, the port to use when performing the test. If not set on a UDP test, a random port is assigned, which may affect the results.

    source_service

    string

    An optional label displayed for the source host in the Network Path visualization.

    tcp_method

    enum

    For TCP tests, the TCP traceroute strategy. Allowed enum values: prefer_sack,syn,sack

    timeout

    int64

    Timeout in seconds.

    traceroute_queries [required]

    int64

    The number of traceroute path tracings.

    locations [required]

    [string]

    Array of locations used to run the test. Network Path tests can be run from managed locations to test public endpoints, or from a Datadog Agent to test private environments.

    message [required]

    string

    Notification message associated with the test.

    monitor_id

    int64

    The associated monitor ID.

    name [required]

    string

    Name of the test.

    options [required]

    object

    Object describing the extra options for a Synthetic test.

    min_failure_duration

    int64

    Minimum amount of time in failure required to trigger an alert.

    min_location_failed

    int64

    Minimum number of locations in failure required to trigger an alert.

    monitor_name

    string

    The monitor name is used for the alert title as well as for all monitor dashboard widgets and SLOs.

    monitor_options

    object

    Object containing the options for a Synthetic test as a monitor (for example, renotification).

    escalation_message

    string

    Message to include in the escalation notification.

    notification_preset_name

    enum

    The name of the preset for the notification for the monitor. Allowed enum values: show_all,hide_all,hide_query,hide_handles,hide_query_and_handles,show_only_snapshot,hide_handles_and_footer

    renotify_interval

    int64

    Time interval before renotifying if the test is still failing (in minutes).

    renotify_occurrences

    int64

    The number of times to renotify if the test is still failing.

    monitor_priority

    int32

    Integer from 1 (high) to 5 (low) indicating alert severity.

    restricted_roles

    [string]

    DEPRECATED: A list of role identifiers that can be pulled from the Roles API, for restricting read and write access. This field is deprecated. Use the restriction policies API to manage permissions.

    retry

    object

    Object describing the retry strategy to apply to a Synthetic test.

    count

    int64

    Number of times a test needs to be retried before marking a location as failed. Defaults to 0.

    interval

    double

    Time interval between retries (in milliseconds). Defaults to 300ms.

    scheduling

    object

    Object containing timeframes and timezone used for advanced scheduling.

    timeframes [required]

    [object]

    Array containing objects describing the scheduling pattern to apply to each day.

    day [required]

    int32

    Number representing the day of the week.

    from [required]

    string

    The hour of the day on which scheduling starts.

    to [required]

    string

    The hour of the day on which scheduling ends.

    timezone [required]

    string

    Timezone in which the timeframe is based.

    tick_every

    int64

    The frequency at which to run the Synthetic test (in seconds).

    public_id

    string

    The public ID for the test.

    status

    enum

    Define whether you want to start (live) or pause (paused) a Synthetic test. Allowed enum values: live,paused

    subtype

    enum

    Subtype of the Synthetic Network Path test: tcp, udp, or icmp. Allowed enum values: tcp,udp,icmp

    tags

    [string]

    Array of tags attached to the test.

    type [required]

    enum

    Type of the Synthetic test, network. Allowed enum values: network

    default: network

    type [required]

    enum

    Type of the Synthetic test, network. Allowed enum values: network

    default: network

    {
      "data": {
        "attributes": {
          "config": {
            "assertions": [
              {
                "operator": "lessThan",
                "property": "avg",
                "target": 500,
                "type": "latency"
              }
            ],
            "request": {
              "destination_service": "string",
              "e2e_queries": 50,
              "host": "",
              "max_ttl": 30,
              "port": 443,
              "source_service": "string",
              "tcp_method": "prefer_sack",
              "timeout": "integer",
              "traceroute_queries": 3
            }
          },
          "locations": [
            "aws:us-east-1",
            "agent:my-agent-name"
          ],
          "message": "Network Path test notification",
          "name": "Example Network Path test",
          "options": {
            "min_failure_duration": "integer",
            "min_location_failed": "integer",
            "monitor_name": "string",
            "monitor_options": {
              "escalation_message": "string",
              "notification_preset_name": "string",
              "renotify_interval": "integer",
              "renotify_occurrences": "integer"
            },
            "monitor_priority": "integer",
            "restricted_roles": [
              "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
            ],
            "retry": {
              "count": "integer",
              "interval": "number"
            },
            "scheduling": {
              "timeframes": [
                {
                  "day": 1,
                  "from": "07:00",
                  "to": "16:00"
                }
              ],
              "timezone": "America/New_York"
            },
            "tick_every": "integer"
          },
          "status": "live",
          "subtype": "tcp",
          "tags": [
            "env:production"
          ],
          "type": "network"
        },
        "type": "network"
      }
    }

    Response

    OK

    Network Path test response.

    Expand All

    Field

    Type

    Description

    data

    object

    Network Path test response data.

    attributes

    object

    Object containing details about a Network Path test.

    config [required]

    object

    Configuration object for a Network Path test.

    assertions

    [ <oneOf>]

    Array of assertions used for the test.

    default:

    Option 1

    object

    Network latency assertion for a Network Path test.

    operator [required]

    enum

    Assertion operator to apply. Allowed enum values: is,isNot,lessThan,lessThanOrEqual,moreThan,moreThanOrEqual

    property [required]

    enum

    The associated assertion property. Allowed enum values: avg,max,min

    target [required]

    double

    Target value in milliseconds.

    type [required]

    enum

    Type of the latency assertion. Allowed enum values: latency

    default: latency

    Option 2

    object

    Multi-network hop assertion for a Network Path test.

    operator [required]

    enum

    Assertion operator to apply. Allowed enum values: is,isNot,lessThan,lessThanOrEqual,moreThan,moreThanOrEqual

    property [required]

    enum

    The associated assertion property. Allowed enum values: avg,max,min

    target [required]

    double

    Target value in number of hops.

    type [required]

    enum

    Type of the multi-network hop assertion. Allowed enum values: multiNetworkHop

    default: multiNetworkHop

    Option 3

    object

    Packet loss percentage assertion for a Network Path test.

    operator [required]

    enum

    Assertion operator to apply. Allowed enum values: is,isNot,lessThan,lessThanOrEqual,moreThan,moreThanOrEqual

    target [required]

    double

    Target value as a percentage (0 to 1).

    type [required]

    enum

    Type of the packet loss percentage assertion. Allowed enum values: packetLossPercentage

    default: packetLossPercentage

    Option 4

    object

    Jitter assertion for a Network Path test.

    operator [required]

    enum

    Assertion operator to apply. Allowed enum values: is,isNot,lessThan,lessThanOrEqual,moreThan,moreThanOrEqual

    target [required]

    double

    Target value in milliseconds.

    type [required]

    enum

    Type of the jitter assertion. Allowed enum values: jitter

    default: jitter

    request

    object

    Object describing the request for a Network Path test.

    destination_service

    string

    An optional label displayed for the destination host in the Network Path visualization.

    e2e_queries [required]

    int64

    The number of packets sent to probe the destination to measure packet loss, latency and jitter.

    host [required]

    string

    Host name to query.

    max_ttl [required]

    int64

    The maximum time-to-live (max number of hops) used in outgoing probe packets.

    port

    int64

    For TCP or UDP tests, the port to use when performing the test. If not set on a UDP test, a random port is assigned, which may affect the results.

    source_service

    string

    An optional label displayed for the source host in the Network Path visualization.

    tcp_method

    enum

    For TCP tests, the TCP traceroute strategy. Allowed enum values: prefer_sack,syn,sack

    timeout

    int64

    Timeout in seconds.

    traceroute_queries [required]

    int64

    The number of traceroute path tracings.

    locations [required]

    [string]

    Array of locations used to run the test. Network Path tests can be run from managed locations to test public endpoints, or from a Datadog Agent to test private environments.

    message [required]

    string

    Notification message associated with the test.

    monitor_id

    int64

    The associated monitor ID.

    name [required]

    string

    Name of the test.

    options [required]

    object

    Object describing the extra options for a Synthetic test.

    min_failure_duration

    int64

    Minimum amount of time in failure required to trigger an alert.

    min_location_failed

    int64

    Minimum number of locations in failure required to trigger an alert.

    monitor_name

    string

    The monitor name is used for the alert title as well as for all monitor dashboard widgets and SLOs.

    monitor_options

    object

    Object containing the options for a Synthetic test as a monitor (for example, renotification).

    escalation_message

    string

    Message to include in the escalation notification.

    notification_preset_name

    enum

    The name of the preset for the notification for the monitor. Allowed enum values: show_all,hide_all,hide_query,hide_handles,hide_query_and_handles,show_only_snapshot,hide_handles_and_footer

    renotify_interval

    int64

    Time interval before renotifying if the test is still failing (in minutes).

    renotify_occurrences

    int64

    The number of times to renotify if the test is still failing.

    monitor_priority

    int32

    Integer from 1 (high) to 5 (low) indicating alert severity.

    restricted_roles

    [string]

    DEPRECATED: A list of role identifiers that can be pulled from the Roles API, for restricting read and write access. This field is deprecated. Use the restriction policies API to manage permissions.

    retry

    object

    Object describing the retry strategy to apply to a Synthetic test.

    count

    int64

    Number of times a test needs to be retried before marking a location as failed. Defaults to 0.

    interval

    double

    Time interval between retries (in milliseconds). Defaults to 300ms.

    scheduling

    object

    Object containing timeframes and timezone used for advanced scheduling.

    timeframes [required]

    [object]

    Array containing objects describing the scheduling pattern to apply to each day.

    day [required]

    int32

    Number representing the day of the week.

    from [required]

    string

    The hour of the day on which scheduling starts.

    to [required]

    string

    The hour of the day on which scheduling ends.

    timezone [required]

    string

    Timezone in which the timeframe is based.

    tick_every

    int64

    The frequency at which to run the Synthetic test (in seconds).

    public_id

    string

    The public ID for the test.

    status

    enum

    Define whether you want to start (live) or pause (paused) a Synthetic test. Allowed enum values: live,paused

    subtype

    enum

    Subtype of the Synthetic Network Path test: tcp, udp, or icmp. Allowed enum values: tcp,udp,icmp

    tags

    [string]

    Array of tags attached to the test.

    type [required]

    enum

    Type of the Synthetic test, network. Allowed enum values: network

    default: network

    id

    string

    The public ID of the Network Path test.

    type

    enum

    Type of response, network_test. Allowed enum values: network_test

    default: network_test

    {
      "data": {
        "attributes": {
          "config": {
            "assertions": [
              {
                "operator": "lessThan",
                "property": "avg",
                "target": 500,
                "type": "latency"
              }
            ],
            "request": {
              "destination_service": "string",
              "e2e_queries": 50,
              "host": "",
              "max_ttl": 30,
              "port": 443,
              "source_service": "string",
              "tcp_method": "prefer_sack",
              "timeout": "integer",
              "traceroute_queries": 3
            }
          },
          "locations": [
            "aws:us-east-1",
            "agent:my-agent-name"
          ],
          "message": "Network Path test notification",
          "monitor_id": 12345678,
          "name": "Example Network Path test",
          "options": {
            "min_failure_duration": "integer",
            "min_location_failed": "integer",
            "monitor_name": "string",
            "monitor_options": {
              "escalation_message": "string",
              "notification_preset_name": "string",
              "renotify_interval": "integer",
              "renotify_occurrences": "integer"
            },
            "monitor_priority": "integer",
            "restricted_roles": [
              "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
            ],
            "retry": {
              "count": "integer",
              "interval": "number"
            },
            "scheduling": {
              "timeframes": [
                {
                  "day": 1,
                  "from": "07:00",
                  "to": "16:00"
                }
              ],
              "timezone": "America/New_York"
            },
            "tick_every": "integer"
          },
          "public_id": "abc-def-123",
          "status": "live",
          "subtype": "tcp",
          "tags": [
            "env:production"
          ],
          "type": "network"
        },
        "id": "abc-def-123",
        "type": "network_test"
      }
    }

    API error response.

    API error response.

    Expand All

    Field

    Type

    Description

    errors [required]

    [string]

    A list of errors.

    {
      "errors": [
        "Bad Request"
      ]
    }

    API error response.

    API error response.

    Expand All

    Field

    Type

    Description

    errors [required]

    [string]

    A list of errors.

    {
      "errors": [
        "Bad Request"
      ]
    }

    Too many requests

    API error response.

    Expand All

    Field

    Type

    Description

    errors [required]

    [string]

    A list of errors.

    {
      "errors": [
        "Bad Request"
      ]
    }

    Code Example

                      ## default
    # 
    
    # Path parameters
    export public_id="CHANGE_ME"
    # Curl command
    curl -X PUT "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/synthetics/tests/network/${public_id}" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "data": { "attributes": { "config": { "assertions": [ { "operator": "lessThan", "property": "avg", "target": 500, "type": "latency" } ], "request": { "e2e_queries": 50, "host": "", "max_ttl": 30, "port": 443, "tcp_method": "prefer_sack", "traceroute_queries": 3 } }, "locations": [ "aws:us-east-1", "agent:my-agent-name" ], "message": "Network Path test notification", "monitor_id": 12345678, "name": "Example Network Path test", "options": { "monitor_options": { "notification_preset_name": "show_all" }, "scheduling": { "timeframes": [ { "day": 1, "from": "07:00", "to": "16:00" }, { "day": 3, "from": "07:00", "to": "16:00" } ], "timezone": "America/New_York" } }, "public_id": "abc-def-123", "status": "live", "subtype": "tcp", "tags": [ "env:production" ], "type": "network" }, "type": "network" } } EOF
    """
    Edit a Network Path test returns "OK" response
    """
    
    from datadog_api_client import ApiClient, Configuration
    from datadog_api_client.v2.api.synthetics_api import SyntheticsApi
    from datadog_api_client.v2.model.synthetics_network_assertion_latency import SyntheticsNetworkAssertionLatency
    from datadog_api_client.v2.model.synthetics_network_assertion_latency_type import SyntheticsNetworkAssertionLatencyType
    from datadog_api_client.v2.model.synthetics_network_assertion_operator import SyntheticsNetworkAssertionOperator
    from datadog_api_client.v2.model.synthetics_network_assertion_property import SyntheticsNetworkAssertionProperty
    from datadog_api_client.v2.model.synthetics_network_test import SyntheticsNetworkTest
    from datadog_api_client.v2.model.synthetics_network_test_config import SyntheticsNetworkTestConfig
    from datadog_api_client.v2.model.synthetics_network_test_edit import SyntheticsNetworkTestEdit
    from datadog_api_client.v2.model.synthetics_network_test_edit_request import SyntheticsNetworkTestEditRequest
    from datadog_api_client.v2.model.synthetics_network_test_request import SyntheticsNetworkTestRequest
    from datadog_api_client.v2.model.synthetics_network_test_request_tcp_method import SyntheticsNetworkTestRequestTCPMethod
    from datadog_api_client.v2.model.synthetics_network_test_sub_type import SyntheticsNetworkTestSubType
    from datadog_api_client.v2.model.synthetics_network_test_type import SyntheticsNetworkTestType
    from datadog_api_client.v2.model.synthetics_test_options import SyntheticsTestOptions
    from datadog_api_client.v2.model.synthetics_test_options_monitor_options import SyntheticsTestOptionsMonitorOptions
    from datadog_api_client.v2.model.synthetics_test_options_monitor_options_notification_preset_name import (
        SyntheticsTestOptionsMonitorOptionsNotificationPresetName,
    )
    from datadog_api_client.v2.model.synthetics_test_options_retry import SyntheticsTestOptionsRetry
    from datadog_api_client.v2.model.synthetics_test_options_scheduling import SyntheticsTestOptionsScheduling
    from datadog_api_client.v2.model.synthetics_test_options_scheduling_timeframe import (
        SyntheticsTestOptionsSchedulingTimeframe,
    )
    from datadog_api_client.v2.model.synthetics_test_pause_status import SyntheticsTestPauseStatus
    
    body = SyntheticsNetworkTestEditRequest(
        data=SyntheticsNetworkTestEdit(
            attributes=SyntheticsNetworkTest(
                config=SyntheticsNetworkTestConfig(
                    assertions=[
                        SyntheticsNetworkAssertionLatency(
                            operator=SyntheticsNetworkAssertionOperator.LESS_THAN,
                            _property=SyntheticsNetworkAssertionProperty.AVG,
                            target=500.0,
                            type=SyntheticsNetworkAssertionLatencyType.LATENCY,
                        ),
                    ],
                    request=SyntheticsNetworkTestRequest(
                        e2e_queries=50,
                        host="",
                        max_ttl=30,
                        port=443,
                        tcp_method=SyntheticsNetworkTestRequestTCPMethod.PREFER_SACK,
                        traceroute_queries=3,
                    ),
                ),
                locations=[
                    "aws:us-east-1",
                    "agent:my-agent-name",
                ],
                message="Network Path test notification",
                name="Example Network Path test",
                options=SyntheticsTestOptions(
                    monitor_options=SyntheticsTestOptionsMonitorOptions(
                        notification_preset_name=SyntheticsTestOptionsMonitorOptionsNotificationPresetName.SHOW_ALL,
                    ),
                    restricted_roles=[
                        "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                    ],
                    retry=SyntheticsTestOptionsRetry(),
                    scheduling=SyntheticsTestOptionsScheduling(
                        timeframes=[
                            SyntheticsTestOptionsSchedulingTimeframe(
                                day=1,
                                _from="07:00",
                                to="16:00",
                            ),
                            SyntheticsTestOptionsSchedulingTimeframe(
                                day=3,
                                _from="07:00",
                                to="16:00",
                            ),
                        ],
                        timezone="America/New_York",
                    ),
                ),
                status=SyntheticsTestPauseStatus.LIVE,
                subtype=SyntheticsNetworkTestSubType.TCP,
                tags=[
                    "env:production",
                ],
                type=SyntheticsNetworkTestType.NETWORK,
            ),
            type=SyntheticsNetworkTestType.NETWORK,
        ),
    )
    
    configuration = Configuration()
    with ApiClient(configuration) as api_client:
        api_instance = SyntheticsApi(api_client)
        response = api_instance.update_synthetics_network_test(public_id="public_id", body=body)
    
        print(response)
    

    Instructions

    First install the library and its dependencies and then save the example to example.py and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
    # Edit a Network Path test returns "OK" response
    
    require "datadog_api_client"
    api_instance = DatadogAPIClient::V2::SyntheticsAPI.new
    
    body = DatadogAPIClient::V2::SyntheticsNetworkTestEditRequest.new({
      data: DatadogAPIClient::V2::SyntheticsNetworkTestEdit.new({
        attributes: DatadogAPIClient::V2::SyntheticsNetworkTest.new({
          config: DatadogAPIClient::V2::SyntheticsNetworkTestConfig.new({
            assertions: [
              DatadogAPIClient::V2::SyntheticsNetworkAssertionLatency.new({
                operator: DatadogAPIClient::V2::SyntheticsNetworkAssertionOperator::LESS_THAN,
                property: DatadogAPIClient::V2::SyntheticsNetworkAssertionProperty::AVG,
                target: 500,
                type: DatadogAPIClient::V2::SyntheticsNetworkAssertionLatencyType::LATENCY,
              }),
            ],
            request: DatadogAPIClient::V2::SyntheticsNetworkTestRequest.new({
              e2e_queries: 50,
              host: "",
              max_ttl: 30,
              port: 443,
              tcp_method: DatadogAPIClient::V2::SyntheticsNetworkTestRequestTCPMethod::PREFER_SACK,
              traceroute_queries: 3,
            }),
          }),
          locations: [
            "aws:us-east-1",
            "agent:my-agent-name",
          ],
          message: "Network Path test notification",
          name: "Example Network Path test",
          options: DatadogAPIClient::V2::SyntheticsTestOptions.new({
            monitor_options: DatadogAPIClient::V2::SyntheticsTestOptionsMonitorOptions.new({
              notification_preset_name: DatadogAPIClient::V2::SyntheticsTestOptionsMonitorOptionsNotificationPresetName::SHOW_ALL,
            }),
            restricted_roles: [
              "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            ],
            _retry: DatadogAPIClient::V2::SyntheticsTestOptionsRetry.new({}),
            scheduling: DatadogAPIClient::V2::SyntheticsTestOptionsScheduling.new({
              timeframes: [
                DatadogAPIClient::V2::SyntheticsTestOptionsSchedulingTimeframe.new({
                  day: 1,
                  from: "07:00",
                  to: "16:00",
                }),
                DatadogAPIClient::V2::SyntheticsTestOptionsSchedulingTimeframe.new({
                  day: 3,
                  from: "07:00",
                  to: "16:00",
                }),
              ],
              timezone: "America/New_York",
            }),
          }),
          status: DatadogAPIClient::V2::SyntheticsTestPauseStatus::LIVE,
          subtype: DatadogAPIClient::V2::SyntheticsNetworkTestSubType::TCP,
          tags: [
            "env:production",
          ],
          type: DatadogAPIClient::V2::SyntheticsNetworkTestType::NETWORK,
        }),
        type: DatadogAPIClient::V2::SyntheticsNetworkTestType::NETWORK,
      }),
    })
    p api_instance.update_synthetics_network_test("public_id", body)
    

    Instructions

    First install the library and its dependencies and then save the example to example.rb and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
    // Edit a Network Path test returns "OK" response
    
    package main
    
    import (
    	"context"
    	"encoding/json"
    	"fmt"
    	"os"
    
    	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
    	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
    )
    
    func main() {
    	body := datadogV2.SyntheticsNetworkTestEditRequest{
    		Data: datadogV2.SyntheticsNetworkTestEdit{
    			Attributes: datadogV2.SyntheticsNetworkTest{
    				Config: datadogV2.SyntheticsNetworkTestConfig{
    					Assertions: []datadogV2.SyntheticsNetworkAssertion{
    						datadogV2.SyntheticsNetworkAssertion{
    							SyntheticsNetworkAssertionLatency: &datadogV2.SyntheticsNetworkAssertionLatency{
    								Operator: datadogV2.SYNTHETICSNETWORKASSERTIONOPERATOR_LESS_THAN,
    								Property: datadogV2.SYNTHETICSNETWORKASSERTIONPROPERTY_AVG,
    								Target:   500,
    								Type:     datadogV2.SYNTHETICSNETWORKASSERTIONLATENCYTYPE_LATENCY,
    							}},
    					},
    					Request: &datadogV2.SyntheticsNetworkTestRequest{
    						E2eQueries:        50,
    						Host:              "",
    						MaxTtl:            30,
    						Port:              datadog.PtrInt64(443),
    						TcpMethod:         datadogV2.SYNTHETICSNETWORKTESTREQUESTTCPMETHOD_PREFER_SACK.Ptr(),
    						TracerouteQueries: 3,
    					},
    				},
    				Locations: []string{
    					"aws:us-east-1",
    					"agent:my-agent-name",
    				},
    				Message: "Network Path test notification",
    				Name:    "Example Network Path test",
    				Options: datadogV2.SyntheticsTestOptions{
    					MonitorOptions: &datadogV2.SyntheticsTestOptionsMonitorOptions{
    						NotificationPresetName: datadogV2.SYNTHETICSTESTOPTIONSMONITOROPTIONSNOTIFICATIONPRESETNAME_SHOW_ALL.Ptr(),
    					},
    					RestrictedRoles: []string{
    						"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    					},
    					Retry: &datadogV2.SyntheticsTestOptionsRetry{},
    					Scheduling: &datadogV2.SyntheticsTestOptionsScheduling{
    						Timeframes: []datadogV2.SyntheticsTestOptionsSchedulingTimeframe{
    							{
    								Day:  1,
    								From: "07:00",
    								To:   "16:00",
    							},
    							{
    								Day:  3,
    								From: "07:00",
    								To:   "16:00",
    							},
    						},
    						Timezone: "America/New_York",
    					},
    				},
    				Status:  datadogV2.SYNTHETICSTESTPAUSESTATUS_LIVE.Ptr(),
    				Subtype: datadogV2.SYNTHETICSNETWORKTESTSUBTYPE_TCP.Ptr(),
    				Tags: []string{
    					"env:production",
    				},
    				Type: datadogV2.SYNTHETICSNETWORKTESTTYPE_NETWORK,
    			},
    			Type: datadogV2.SYNTHETICSNETWORKTESTTYPE_NETWORK,
    		},
    	}
    	ctx := datadog.NewDefaultContext(context.Background())
    	configuration := datadog.NewConfiguration()
    	apiClient := datadog.NewAPIClient(configuration)
    	api := datadogV2.NewSyntheticsApi(apiClient)
    	resp, r, err := api.UpdateSyntheticsNetworkTest(ctx, "public_id", body)
    
    	if err != nil {
    		fmt.Fprintf(os.Stderr, "Error when calling `SyntheticsApi.UpdateSyntheticsNetworkTest`: %v\n", err)
    		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
    	}
    
    	responseContent, _ := json.MarshalIndent(resp, "", "  ")
    	fmt.Fprintf(os.Stdout, "Response from `SyntheticsApi.UpdateSyntheticsNetworkTest`:\n%s\n", responseContent)
    }
    

    Instructions

    First install the library and its dependencies and then save the example to main.go and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
    // Edit a Network Path test returns "OK" response
    
    import com.datadog.api.client.ApiClient;
    import com.datadog.api.client.ApiException;
    import com.datadog.api.client.v2.api.SyntheticsApi;
    import com.datadog.api.client.v2.model.SyntheticsNetworkAssertion;
    import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionLatency;
    import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionLatencyType;
    import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionOperator;
    import com.datadog.api.client.v2.model.SyntheticsNetworkAssertionProperty;
    import com.datadog.api.client.v2.model.SyntheticsNetworkTest;
    import com.datadog.api.client.v2.model.SyntheticsNetworkTestConfig;
    import com.datadog.api.client.v2.model.SyntheticsNetworkTestEdit;
    import com.datadog.api.client.v2.model.SyntheticsNetworkTestEditRequest;
    import com.datadog.api.client.v2.model.SyntheticsNetworkTestRequest;
    import com.datadog.api.client.v2.model.SyntheticsNetworkTestRequestTCPMethod;
    import com.datadog.api.client.v2.model.SyntheticsNetworkTestResponse;
    import com.datadog.api.client.v2.model.SyntheticsNetworkTestSubType;
    import com.datadog.api.client.v2.model.SyntheticsNetworkTestType;
    import com.datadog.api.client.v2.model.SyntheticsTestOptions;
    import com.datadog.api.client.v2.model.SyntheticsTestOptionsMonitorOptions;
    import com.datadog.api.client.v2.model.SyntheticsTestOptionsMonitorOptionsNotificationPresetName;
    import com.datadog.api.client.v2.model.SyntheticsTestOptionsRetry;
    import com.datadog.api.client.v2.model.SyntheticsTestOptionsScheduling;
    import com.datadog.api.client.v2.model.SyntheticsTestOptionsSchedulingTimeframe;
    import com.datadog.api.client.v2.model.SyntheticsTestPauseStatus;
    import java.util.Arrays;
    import java.util.Collections;
    
    public class Example {
      public static void main(String[] args) {
        ApiClient defaultClient = ApiClient.getDefaultApiClient();
        SyntheticsApi apiInstance = new SyntheticsApi(defaultClient);
    
        SyntheticsNetworkTestEditRequest body =
            new SyntheticsNetworkTestEditRequest()
                .data(
                    new SyntheticsNetworkTestEdit()
                        .attributes(
                            new SyntheticsNetworkTest()
                                .config(
                                    new SyntheticsNetworkTestConfig()
                                        .assertions(
                                            Collections.singletonList(
                                                new SyntheticsNetworkAssertion(
                                                    new SyntheticsNetworkAssertionLatency()
                                                        .operator(
                                                            SyntheticsNetworkAssertionOperator
                                                                .LESS_THAN)
                                                        .property(
                                                            SyntheticsNetworkAssertionProperty.AVG)
                                                        .target(500.0)
                                                        .type(
                                                            SyntheticsNetworkAssertionLatencyType
                                                                .LATENCY))))
                                        .request(
                                            new SyntheticsNetworkTestRequest()
                                                .e2eQueries(50L)
                                                .host("")
                                                .maxTtl(30L)
                                                .port(443L)
                                                .tcpMethod(
                                                    SyntheticsNetworkTestRequestTCPMethod.PREFER_SACK)
                                                .tracerouteQueries(3L)))
                                .locations(Arrays.asList("aws:us-east-1", "agent:my-agent-name"))
                                .message("Network Path test notification")
                                .name("Example Network Path test")
                                .options(
                                    new SyntheticsTestOptions()
                                        .monitorOptions(
                                            new SyntheticsTestOptionsMonitorOptions()
                                                .notificationPresetName(
                                                    SyntheticsTestOptionsMonitorOptionsNotificationPresetName
                                                        .SHOW_ALL))
                                        .restrictedRoles(
                                            Collections.singletonList(
                                                "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"))
                                        .retry(new SyntheticsTestOptionsRetry())
                                        .scheduling(
                                            new SyntheticsTestOptionsScheduling()
                                                .timeframes(
                                                    Arrays.asList(
                                                        new SyntheticsTestOptionsSchedulingTimeframe()
                                                            .day(1)
                                                            .from("07:00")
                                                            .to("16:00"),
                                                        new SyntheticsTestOptionsSchedulingTimeframe()
                                                            .day(3)
                                                            .from("07:00")
                                                            .to("16:00")))
                                                .timezone("America/New_York")))
                                .status(SyntheticsTestPauseStatus.LIVE)
                                .subtype(SyntheticsNetworkTestSubType.TCP)
                                .tags(Collections.singletonList("env:production"))
                                .type(SyntheticsNetworkTestType.NETWORK))
                        .type(SyntheticsNetworkTestType.NETWORK));
    
        try {
          SyntheticsNetworkTestResponse result =
              apiInstance.updateSyntheticsNetworkTest("public_id", body);
          System.out.println(result);
        } catch (ApiException e) {
          System.err.println("Exception when calling SyntheticsApi#updateSyntheticsNetworkTest");
          System.err.println("Status code: " + e.getCode());
          System.err.println("Reason: " + e.getResponseBody());
          System.err.println("Response headers: " + e.getResponseHeaders());
          e.printStackTrace();
        }
      }
    }
    

    Instructions

    First install the library and its dependencies and then save the example to Example.java and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
    // Edit a Network Path test returns "OK" response
    use datadog_api_client::datadog;
    use datadog_api_client::datadogV2::api_synthetics::SyntheticsAPI;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkAssertion;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkAssertionLatency;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkAssertionLatencyType;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkAssertionOperator;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkAssertionProperty;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkTest;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkTestConfig;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkTestEdit;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkTestEditRequest;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkTestRequest;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkTestRequestTCPMethod;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkTestSubType;
    use datadog_api_client::datadogV2::model::SyntheticsNetworkTestType;
    use datadog_api_client::datadogV2::model::SyntheticsTestOptions;
    use datadog_api_client::datadogV2::model::SyntheticsTestOptionsMonitorOptions;
    use datadog_api_client::datadogV2::model::SyntheticsTestOptionsMonitorOptionsNotificationPresetName;
    use datadog_api_client::datadogV2::model::SyntheticsTestOptionsRetry;
    use datadog_api_client::datadogV2::model::SyntheticsTestOptionsScheduling;
    use datadog_api_client::datadogV2::model::SyntheticsTestOptionsSchedulingTimeframe;
    use datadog_api_client::datadogV2::model::SyntheticsTestPauseStatus;
    
    #[tokio::main]
    async fn main() {
        let body = SyntheticsNetworkTestEditRequest::new(SyntheticsNetworkTestEdit::new(
            SyntheticsNetworkTest::new(
                SyntheticsNetworkTestConfig::new()
                    .assertions(vec![
                        SyntheticsNetworkAssertion::SyntheticsNetworkAssertionLatency(Box::new(
                            SyntheticsNetworkAssertionLatency::new(
                                SyntheticsNetworkAssertionOperator::LESS_THAN,
                                SyntheticsNetworkAssertionProperty::AVG,
                                500.0,
                                SyntheticsNetworkAssertionLatencyType::LATENCY,
                            ),
                        )),
                    ])
                    .request(
                        SyntheticsNetworkTestRequest::new(50, "".to_string(), 30, 3)
                            .port(443)
                            .tcp_method(SyntheticsNetworkTestRequestTCPMethod::PREFER_SACK),
                    ),
                vec![
                    "aws:us-east-1".to_string(),
                    "agent:my-agent-name".to_string(),
                ],
                "Network Path test notification".to_string(),
                "Example Network Path test".to_string(),
                SyntheticsTestOptions::new()
                    .monitor_options(
                        SyntheticsTestOptionsMonitorOptions::new().notification_preset_name(
                            SyntheticsTestOptionsMonitorOptionsNotificationPresetName::SHOW_ALL,
                        ),
                    )
                    .restricted_roles(vec!["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string()])
                    .retry(SyntheticsTestOptionsRetry::new())
                    .scheduling(SyntheticsTestOptionsScheduling::new(
                        vec![
                            SyntheticsTestOptionsSchedulingTimeframe::new(
                                1,
                                "07:00".to_string(),
                                "16:00".to_string(),
                            ),
                            SyntheticsTestOptionsSchedulingTimeframe::new(
                                3,
                                "07:00".to_string(),
                                "16:00".to_string(),
                            ),
                        ],
                        "America/New_York".to_string(),
                    )),
                SyntheticsNetworkTestType::NETWORK,
            )
            .status(SyntheticsTestPauseStatus::LIVE)
            .subtype(SyntheticsNetworkTestSubType::TCP)
            .tags(vec!["env:production".to_string()]),
            SyntheticsNetworkTestType::NETWORK,
        ));
        let configuration = datadog::Configuration::new();
        let api = SyntheticsAPI::with_config(configuration);
        let resp = api
            .update_synthetics_network_test("public_id".to_string(), body)
            .await;
        if let Ok(value) = resp {
            println!("{:#?}", value);
        } else {
            println!("{:#?}", resp.unwrap_err());
        }
    }
    

    Instructions

    First install the library and its dependencies and then save the example to src/main.rs and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
    /**
     * Edit a Network Path test returns "OK" response
     */
    
    import { client, v2 } from "@datadog/datadog-api-client";
    
    const configuration = client.createConfiguration();
    const apiInstance = new v2.SyntheticsApi(configuration);
    
    const params: v2.SyntheticsApiUpdateSyntheticsNetworkTestRequest = {
      body: {
        data: {
          attributes: {
            config: {
              assertions: [
                {
                  operator: "lessThan",
                  property: "avg",
                  target: 500,
                  type: "latency",
                },
              ],
              request: {
                e2eQueries: 50,
                host: "",
                maxTtl: 30,
                port: 443,
                tcpMethod: "prefer_sack",
                tracerouteQueries: 3,
              },
            },
            locations: ["aws:us-east-1", "agent:my-agent-name"],
            message: "Network Path test notification",
            name: "Example Network Path test",
            options: {
              monitorOptions: {
                notificationPresetName: "show_all",
              },
              restrictedRoles: ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"],
              retry: {},
              scheduling: {
                timeframes: [
                  {
                    day: 1,
                    from: "07:00",
                    to: "16:00",
                  },
                  {
                    day: 3,
                    from: "07:00",
                    to: "16:00",
                  },
                ],
                timezone: "America/New_York",
              },
            },
            status: "live",
            subtype: "tcp",
            tags: ["env:production"],
            type: "network",
          },
          type: "network",
        },
      },
      publicId: "public_id",
    };
    
    apiInstance
      .updateSyntheticsNetworkTest(params)
      .then((data: v2.SyntheticsNetworkTestResponse) => {
        console.log(
          "API called successfully. Returned data: " + JSON.stringify(data)
        );
      })
      .catch((error: any) => console.error(error));
    

    Instructions

    First install the library and its dependencies and then save the example to example.ts and run following commands:

        
    DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"