Update a Twilio integration account

Note: This endpoint is in preview and is subject to change. If you have any feedback, contact Datadog support.

PATCH https://api.ap1.datadoghq.com/api/v2/integration-interfaces/twilio/accounts/{account_id}https://api.ap2.datadoghq.com/api/v2/integration-interfaces/twilio/accounts/{account_id}https://api.datadoghq.eu/api/v2/integration-interfaces/twilio/accounts/{account_id}https://api.ddog-gov.com/api/v2/integration-interfaces/twilio/accounts/{account_id}https://api.us2.ddog-gov.com/api/v2/integration-interfaces/twilio/accounts/{account_id}https://api.uk1.datadoghq.com/api/v2/integration-interfaces/twilio/accounts/{account_id}https://api.datadoghq.com/api/v2/integration-interfaces/twilio/accounts/{account_id}https://api.us3.datadoghq.com/api/v2/integration-interfaces/twilio/accounts/{account_id}https://api.us5.datadoghq.com/api/v2/integration-interfaces/twilio/accounts/{account_id}

Overview

Update a Twilio integration account. Only the fields provided are changed. This endpoint requires the manage_integrations permission.

Arguments

Path Parameters

Name

Type

Description

account_id [required]

string

Unique identifier of the integration account.

Request

Body Data (required)

Expand All

Field

Type

Description

data [required]

object

Data envelope for updating a Twilio integration account.

attributes [required]

object

Writable attributes used to update a Twilio integration account. Every field is optional; only the fields provided are changed. When dataflows is provided, only the dataflow ids included in the request are modified; dataflows omitted from the map keep their current configuration.

authentication

 <oneOf>

Authentication for updating the Twilio integration account. Exactly one method is set.

<auth_type=basic>

object

Username and password authentication. Only the fields provided are changed; omit password to keep the stored one.

auth_type [required]

enum

The authentication method type. Allowed enum values: basic

default: basic

password

string

Secret password or private key.

username

string

Non-secret username or public identifier for the credential pair.

dataflows

object

Data Datadog collects from Twilio, keyed by dataflow id. Each dataflow turns on a distinct kind of collection: set enabled to start or stop it. Defaults listed on each dataflow apply when the account is created; on update, omitted fields keep their current values. Where a dataflow depends on a Twilio feature being enabled, that prerequisite is noted on the dataflow; a dataflow enabled without it is stored but collects no data.

twilio-alerts-logs

object

Twilio Alert resource logs, which detail the errors and warnings raised when Twilio makes a webhook request to your server or when your application calls the Twilio REST API. This is the one kind of data the integration collects by default.

enabled

boolean

Whether Datadog collects this data. Defaults to true; set to false to stop collection.

twilio-call-summaries-logs

object

Twilio Call Summary resource logs, covering the metadata and performance of the calls made from your Twilio account. Requires Voice Insights Advanced Features to be enabled on the Twilio account; without it this dataflow collects no data.

enabled

boolean

Whether Datadog collects this data. Defaults to false; set to true to start collection.

twilio-cloud-cost-metrics

object

Your Twilio cost data, so that Twilio spend can be broken down and attributed in Cloud Cost Management. Cost data appears in Cloud Cost Management within 24 hours of enabling this dataflow.

enabled

boolean

Whether Datadog collects this data. Defaults to false; set to true to start collection.

twilio-events-logs

object

Twilio Event resource logs, which record virtually every action taken in your Twilio account, such as provisioning a phone number, changing account security settings, or deleting a recording. Actions are recorded whether they came from the REST API, a user in the Twilio Console, or Twilio itself. Cloud SIEM analyzes and correlates these logs to detect threats in real time.

enabled

boolean

Whether Datadog collects this data. Defaults to false; set to true to start collection.

twilio-messages-logs

object

Twilio Message resource logs for inbound and outbound messages, used to track delivery and troubleshoot message errors. A log is produced when you send a message through the REST API, when Twilio executes a TwiML instruction, and when someone messages one of your Twilio numbers or channel addresses. Message bodies are never collected.

enabled

boolean

Whether Datadog collects this data. Defaults to false; set to true to start collection.

name

string

Human-readable name of the Twilio integration account.

settings

object

Settings for updating the Twilio integration account. Only the fields provided are changed.

account_sid

string

Twilio Account SID that uniquely identifies your Twilio account.

censor_logs

boolean

When enabled, Twilio phone numbers in the to field and SMS message bodies are censored for privacy.

id [required]

string

Unique identifier of the Twilio integration account to update.

type [required]

enum

The type of the integration account resource. Always integration-account. Allowed enum values: integration-account

default: integration-account

{
  "data": {
    "attributes": {
      "authentication": {
        "auth_type": "basic",
        "password": "your-password",
        "username": "datadog"
      },
      "dataflows": {
        "twilio-alerts-logs": {
          "enabled": true
        },
        "twilio-call-summaries-logs": {
          "enabled": true
        },
        "twilio-cloud-cost-metrics": {
          "enabled": true
        },
        "twilio-events-logs": {
          "enabled": true
        },
        "twilio-messages-logs": {
          "enabled": true
        }
      },
      "name": "twilio-prod",
      "settings": {
        "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "censor_logs": true
      }
    },
    "id": "953a0060-81ec-4221-aed4-d4733b59cd96",
    "type": "integration-account"
  }
}

Response

OK

Response payload for a single Twilio integration account.

Expand All

Field

Type

Description

data [required]

object

Data envelope of a Twilio integration account, including server-assigned identity.

attributes [required]

object

Attributes of a Twilio integration account returned in responses.

authentication

 <oneOf>

Authentication configured on the Twilio integration account.

<auth_type=basic>

object

The basic authentication method and username configured on the account.

auth_type [required]

enum

The authentication method type. Allowed enum values: basic

default: basic

username [required]

string

Non-secret username or public identifier for the credential pair.

dataflows

object

Data Datadog collects from Twilio, keyed by dataflow id.

twilio-alerts-logs

object

Twilio Alert resource logs, which detail the errors and warnings raised when Twilio makes a webhook request to your server or when your application calls the Twilio REST API.

enabled

boolean

Whether Datadog collects this data.

status

object

Read-only collection status of a dataflow.

health

enum

Collection health of a single dataflow. Allowed enum values: DATAFLOW_HEALTH_OK,DATAFLOW_HEALTH_BROKEN,DATAFLOW_HEALTH_UNKNOWN

message

string

Human-readable detail, populated when the dataflow is not healthy.

updated_at

date-time

Time the status was last computed.

twilio-call-summaries-logs

object

Twilio Call Summary resource logs, covering the metadata and performance of the calls made from your Twilio account. Requires Voice Insights Advanced Features to be enabled on the Twilio account; without it this dataflow collects no data.

enabled

boolean

Whether Datadog collects this data.

status

object

Read-only collection status of a dataflow.

health

enum

Collection health of a single dataflow. Allowed enum values: DATAFLOW_HEALTH_OK,DATAFLOW_HEALTH_BROKEN,DATAFLOW_HEALTH_UNKNOWN

message

string

Human-readable detail, populated when the dataflow is not healthy.

updated_at

date-time

Time the status was last computed.

twilio-cloud-cost-metrics

object

Your Twilio cost data, so that Twilio spend can be broken down and attributed in Cloud Cost Management.

enabled

boolean

Whether Datadog collects this data.

status

object

Read-only collection status of a dataflow.

health

enum

Collection health of a single dataflow. Allowed enum values: DATAFLOW_HEALTH_OK,DATAFLOW_HEALTH_BROKEN,DATAFLOW_HEALTH_UNKNOWN

message

string

Human-readable detail, populated when the dataflow is not healthy.

updated_at

date-time

Time the status was last computed.

twilio-events-logs

object

Twilio Event resource logs, which record virtually every action taken in your Twilio account, such as provisioning a phone number, changing account security settings, or deleting a recording. Actions are recorded whether they came from the REST API, a user in the Twilio Console, or Twilio itself. Cloud SIEM analyzes and correlates these logs to detect threats in real time.

enabled

boolean

Whether Datadog collects this data.

status

object

Read-only collection status of a dataflow.

health

enum

Collection health of a single dataflow. Allowed enum values: DATAFLOW_HEALTH_OK,DATAFLOW_HEALTH_BROKEN,DATAFLOW_HEALTH_UNKNOWN

message

string

Human-readable detail, populated when the dataflow is not healthy.

updated_at

date-time

Time the status was last computed.

twilio-messages-logs

object

Twilio Message resource logs for inbound and outbound messages, used to track delivery and troubleshoot message errors. A log is produced when you send a message through the REST API, when Twilio executes a TwiML instruction, and when someone messages one of your Twilio numbers or channel addresses. Message bodies are never collected.

enabled

boolean

Whether Datadog collects this data.

status

object

Read-only collection status of a dataflow.

health

enum

Collection health of a single dataflow. Allowed enum values: DATAFLOW_HEALTH_OK,DATAFLOW_HEALTH_BROKEN,DATAFLOW_HEALTH_UNKNOWN

message

string

Human-readable detail, populated when the dataflow is not healthy.

updated_at

date-time

Time the status was last computed.

name [required]

string

Human-readable name of the Twilio integration account.

settings [required]

object

Settings configured on the Twilio integration account.

account_sid [required]

string

Twilio Account SID that uniquely identifies your Twilio account.

censor_logs

boolean

When enabled, Twilio phone numbers in the to field and SMS message bodies are censored for privacy.

id [required]

string

Server-generated unique identifier of the Twilio integration account.

type [required]

enum

The type of the integration account resource. Always integration-account. Allowed enum values: integration-account

default: integration-account

{
  "data": {
    "attributes": {
      "authentication": {
        "auth_type": "basic",
        "username": "datadog"
      },
      "dataflows": {
        "twilio-alerts-logs": {
          "enabled": true,
          "status": {
            "health": "DATAFLOW_HEALTH_OK",
            "message": "",
            "updated_at": "2026-06-25T08:30:50Z"
          }
        },
        "twilio-call-summaries-logs": {
          "enabled": true,
          "status": {
            "health": "DATAFLOW_HEALTH_OK",
            "message": "",
            "updated_at": "2026-06-25T08:30:50Z"
          }
        },
        "twilio-cloud-cost-metrics": {
          "enabled": true,
          "status": {
            "health": "DATAFLOW_HEALTH_OK",
            "message": "",
            "updated_at": "2026-06-25T08:30:50Z"
          }
        },
        "twilio-events-logs": {
          "enabled": true,
          "status": {
            "health": "DATAFLOW_HEALTH_OK",
            "message": "",
            "updated_at": "2026-06-25T08:30:50Z"
          }
        },
        "twilio-messages-logs": {
          "enabled": true,
          "status": {
            "health": "DATAFLOW_HEALTH_OK",
            "message": "",
            "updated_at": "2026-06-25T08:30:50Z"
          }
        }
      },
      "name": "twilio-prod",
      "settings": {
        "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "censor_logs": true
      }
    },
    "id": "953a0060-81ec-4221-aed4-d4733b59cd96",
    "type": "integration-account"
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

Not Found

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

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

The server cannot process the request because it contains invalid data.

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "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

                  # Path parameters
export account_id="CHANGE_ME"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

# Curl command
curl -X PATCH "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.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/integration-interfaces/twilio/accounts/${account_id}" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${DD_BEARER_TOKEN}" \ -d @- << EOF { "data": { "attributes": {}, "id": "953a0060-81ec-4221-aed4-d4733b59cd96", "type": "integration-account" } } EOF
"""
Update a Twilio integration account returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.twilio_integration_api import TwilioIntegrationApi
from datadog_api_client.v2.model.integration_account_type import IntegrationAccountType
from datadog_api_client.v2.model.twilio_alerts_logs_integration_dataflow_request import (
    TwilioAlertsLogsIntegrationDataflowRequest,
)
from datadog_api_client.v2.model.twilio_call_summaries_logs_integration_dataflow_request import (
    TwilioCallSummariesLogsIntegrationDataflowRequest,
)
from datadog_api_client.v2.model.twilio_cloud_cost_metrics_integration_dataflow_request import (
    TwilioCloudCostMetricsIntegrationDataflowRequest,
)
from datadog_api_client.v2.model.twilio_events_logs_integration_dataflow_request import (
    TwilioEventsLogsIntegrationDataflowRequest,
)
from datadog_api_client.v2.model.twilio_integration_account_basic_auth_type import TwilioIntegrationAccountBasicAuthType
from datadog_api_client.v2.model.twilio_integration_account_basic_auth_update import (
    TwilioIntegrationAccountBasicAuthUpdate,
)
from datadog_api_client.v2.model.twilio_integration_account_settings_update import (
    TwilioIntegrationAccountSettingsUpdate,
)
from datadog_api_client.v2.model.twilio_integration_account_update_attributes import (
    TwilioIntegrationAccountUpdateAttributes,
)
from datadog_api_client.v2.model.twilio_integration_account_update_data import TwilioIntegrationAccountUpdateData
from datadog_api_client.v2.model.twilio_integration_account_update_request import TwilioIntegrationAccountUpdateRequest
from datadog_api_client.v2.model.twilio_integration_dataflows_request import TwilioIntegrationDataflowsRequest
from datadog_api_client.v2.model.twilio_messages_logs_integration_dataflow_request import (
    TwilioMessagesLogsIntegrationDataflowRequest,
)

body = TwilioIntegrationAccountUpdateRequest(
    data=TwilioIntegrationAccountUpdateData(
        attributes=TwilioIntegrationAccountUpdateAttributes(
            authentication=TwilioIntegrationAccountBasicAuthUpdate(
                auth_type=TwilioIntegrationAccountBasicAuthType.BASIC,
                password="your-password",
                username="datadog",
            ),
            dataflows=TwilioIntegrationDataflowsRequest(
                twilio_alerts_logs=TwilioAlertsLogsIntegrationDataflowRequest(
                    enabled=True,
                ),
                twilio_call_summaries_logs=TwilioCallSummariesLogsIntegrationDataflowRequest(
                    enabled=True,
                ),
                twilio_cloud_cost_metrics=TwilioCloudCostMetricsIntegrationDataflowRequest(
                    enabled=True,
                ),
                twilio_events_logs=TwilioEventsLogsIntegrationDataflowRequest(
                    enabled=True,
                ),
                twilio_messages_logs=TwilioMessagesLogsIntegrationDataflowRequest(
                    enabled=True,
                ),
            ),
            name="twilio-prod",
            settings=TwilioIntegrationAccountSettingsUpdate(
                account_sid="ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                censor_logs=True,
            ),
        ),
        id="953a0060-81ec-4221-aed4-d4733b59cd96",
        type=IntegrationAccountType.INTEGRATION_ACCOUNT,
    ),
)

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
configuration.unstable_operations["update_twilio_integration_account"] = True
with ApiClient(configuration) as api_client:
    api_instance = TwilioIntegrationApi(api_client)
    response = api_instance.update_twilio_integration_account(account_id="account_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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
# Update a Twilio integration account returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
  config.unstable_operations["v2.update_twilio_integration_account".to_sym] = true
end
api_instance = DatadogAPIClient::V2::TwilioIntegrationAPI.new

body = DatadogAPIClient::V2::TwilioIntegrationAccountUpdateRequest.new({
  data: DatadogAPIClient::V2::TwilioIntegrationAccountUpdateData.new({
    attributes: DatadogAPIClient::V2::TwilioIntegrationAccountUpdateAttributes.new({
      authentication: DatadogAPIClient::V2::TwilioIntegrationAccountBasicAuthUpdate.new({
        auth_type: DatadogAPIClient::V2::TwilioIntegrationAccountBasicAuthType::BASIC,
        password: "your-password",
        username: "datadog",
      }),
      dataflows: DatadogAPIClient::V2::TwilioIntegrationDataflowsRequest.new({
        twilio_alerts_logs: DatadogAPIClient::V2::TwilioAlertsLogsIntegrationDataflowRequest.new({
          enabled: true,
        }),
        twilio_call_summaries_logs: DatadogAPIClient::V2::TwilioCallSummariesLogsIntegrationDataflowRequest.new({
          enabled: true,
        }),
        twilio_cloud_cost_metrics: DatadogAPIClient::V2::TwilioCloudCostMetricsIntegrationDataflowRequest.new({
          enabled: true,
        }),
        twilio_events_logs: DatadogAPIClient::V2::TwilioEventsLogsIntegrationDataflowRequest.new({
          enabled: true,
        }),
        twilio_messages_logs: DatadogAPIClient::V2::TwilioMessagesLogsIntegrationDataflowRequest.new({
          enabled: true,
        }),
      }),
      name: "twilio-prod",
      settings: DatadogAPIClient::V2::TwilioIntegrationAccountSettingsUpdate.new({
        account_sid: "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        censor_logs: true,
      }),
    }),
    id: "953a0060-81ec-4221-aed4-d4733b59cd96",
    type: DatadogAPIClient::V2::IntegrationAccountType::INTEGRATION_ACCOUNT,
  }),
})
p api_instance.update_twilio_integration_account("account_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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
// Update a Twilio integration account 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.TwilioIntegrationAccountUpdateRequest{
		Data: datadogV2.TwilioIntegrationAccountUpdateData{
			Attributes: datadogV2.TwilioIntegrationAccountUpdateAttributes{
				Authentication: &datadogV2.TwilioIntegrationAccountAuthenticationUpdate{
					TwilioIntegrationAccountBasicAuthUpdate: &datadogV2.TwilioIntegrationAccountBasicAuthUpdate{
						AuthType: datadogV2.TWILIOINTEGRATIONACCOUNTBASICAUTHTYPE_BASIC,
						Password: datadog.PtrString("your-password"),
						Username: datadog.PtrString("datadog"),
					}},
				Dataflows: &datadogV2.TwilioIntegrationDataflowsRequest{
					TwilioAlertsLogs: &datadogV2.TwilioAlertsLogsIntegrationDataflowRequest{
						Enabled: datadog.PtrBool(true),
					},
					TwilioCallSummariesLogs: &datadogV2.TwilioCallSummariesLogsIntegrationDataflowRequest{
						Enabled: datadog.PtrBool(true),
					},
					TwilioCloudCostMetrics: &datadogV2.TwilioCloudCostMetricsIntegrationDataflowRequest{
						Enabled: datadog.PtrBool(true),
					},
					TwilioEventsLogs: &datadogV2.TwilioEventsLogsIntegrationDataflowRequest{
						Enabled: datadog.PtrBool(true),
					},
					TwilioMessagesLogs: &datadogV2.TwilioMessagesLogsIntegrationDataflowRequest{
						Enabled: datadog.PtrBool(true),
					},
				},
				Name: datadog.PtrString("twilio-prod"),
				Settings: &datadogV2.TwilioIntegrationAccountSettingsUpdate{
					AccountSid: datadog.PtrString("ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"),
					CensorLogs: datadog.PtrBool(true),
				},
			},
			Id:   "953a0060-81ec-4221-aed4-d4733b59cd96",
			Type: datadogV2.INTEGRATIONACCOUNTTYPE_INTEGRATION_ACCOUNT,
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	configuration.SetUnstableOperationEnabled("v2.UpdateTwilioIntegrationAccount", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewTwilioIntegrationApi(apiClient)
	resp, r, err := api.UpdateTwilioIntegrationAccount(ctx, "account_id", body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `TwilioIntegrationApi.UpdateTwilioIntegrationAccount`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `TwilioIntegrationApi.UpdateTwilioIntegrationAccount`:\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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
// Update a Twilio integration account returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.TwilioIntegrationApi;
import com.datadog.api.client.v2.model.IntegrationAccountType;
import com.datadog.api.client.v2.model.TwilioAlertsLogsIntegrationDataflowRequest;
import com.datadog.api.client.v2.model.TwilioCallSummariesLogsIntegrationDataflowRequest;
import com.datadog.api.client.v2.model.TwilioCloudCostMetricsIntegrationDataflowRequest;
import com.datadog.api.client.v2.model.TwilioEventsLogsIntegrationDataflowRequest;
import com.datadog.api.client.v2.model.TwilioIntegrationAccountAuthenticationUpdate;
import com.datadog.api.client.v2.model.TwilioIntegrationAccountBasicAuthType;
import com.datadog.api.client.v2.model.TwilioIntegrationAccountBasicAuthUpdate;
import com.datadog.api.client.v2.model.TwilioIntegrationAccountResponse;
import com.datadog.api.client.v2.model.TwilioIntegrationAccountSettingsUpdate;
import com.datadog.api.client.v2.model.TwilioIntegrationAccountUpdateAttributes;
import com.datadog.api.client.v2.model.TwilioIntegrationAccountUpdateData;
import com.datadog.api.client.v2.model.TwilioIntegrationAccountUpdateRequest;
import com.datadog.api.client.v2.model.TwilioIntegrationDataflowsRequest;
import com.datadog.api.client.v2.model.TwilioMessagesLogsIntegrationDataflowRequest;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    defaultClient.setUnstableOperationEnabled("v2.updateTwilioIntegrationAccount", true);
    TwilioIntegrationApi apiInstance = new TwilioIntegrationApi(defaultClient);

    TwilioIntegrationAccountUpdateRequest body =
        new TwilioIntegrationAccountUpdateRequest()
            .data(
                new TwilioIntegrationAccountUpdateData()
                    .attributes(
                        new TwilioIntegrationAccountUpdateAttributes()
                            .authentication(
                                new TwilioIntegrationAccountAuthenticationUpdate(
                                    new TwilioIntegrationAccountBasicAuthUpdate()
                                        .authType(TwilioIntegrationAccountBasicAuthType.BASIC)
                                        .password("your-password")
                                        .username("datadog")))
                            .dataflows(
                                new TwilioIntegrationDataflowsRequest()
                                    .twilioAlertsLogs(
                                        new TwilioAlertsLogsIntegrationDataflowRequest()
                                            .enabled(true))
                                    .twilioCallSummariesLogs(
                                        new TwilioCallSummariesLogsIntegrationDataflowRequest()
                                            .enabled(true))
                                    .twilioCloudCostMetrics(
                                        new TwilioCloudCostMetricsIntegrationDataflowRequest()
                                            .enabled(true))
                                    .twilioEventsLogs(
                                        new TwilioEventsLogsIntegrationDataflowRequest()
                                            .enabled(true))
                                    .twilioMessagesLogs(
                                        new TwilioMessagesLogsIntegrationDataflowRequest()
                                            .enabled(true)))
                            .name("twilio-prod")
                            .settings(
                                new TwilioIntegrationAccountSettingsUpdate()
                                    .accountSid("ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
                                    .censorLogs(true)))
                    .id("953a0060-81ec-4221-aed4-d4733b59cd96")
                    .type(IntegrationAccountType.INTEGRATION_ACCOUNT));

    try {
      TwilioIntegrationAccountResponse result =
          apiInstance.updateTwilioIntegrationAccount("account_id", body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println(
          "Exception when calling TwilioIntegrationApi#updateTwilioIntegrationAccount");
      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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
// Update a Twilio integration account returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_twilio_integration::TwilioIntegrationAPI;
use datadog_api_client::datadogV2::model::IntegrationAccountType;
use datadog_api_client::datadogV2::model::TwilioAlertsLogsIntegrationDataflowRequest;
use datadog_api_client::datadogV2::model::TwilioCallSummariesLogsIntegrationDataflowRequest;
use datadog_api_client::datadogV2::model::TwilioCloudCostMetricsIntegrationDataflowRequest;
use datadog_api_client::datadogV2::model::TwilioEventsLogsIntegrationDataflowRequest;
use datadog_api_client::datadogV2::model::TwilioIntegrationAccountAuthenticationUpdate;
use datadog_api_client::datadogV2::model::TwilioIntegrationAccountBasicAuthType;
use datadog_api_client::datadogV2::model::TwilioIntegrationAccountBasicAuthUpdate;
use datadog_api_client::datadogV2::model::TwilioIntegrationAccountSettingsUpdate;
use datadog_api_client::datadogV2::model::TwilioIntegrationAccountUpdateAttributes;
use datadog_api_client::datadogV2::model::TwilioIntegrationAccountUpdateData;
use datadog_api_client::datadogV2::model::TwilioIntegrationAccountUpdateRequest;
use datadog_api_client::datadogV2::model::TwilioIntegrationDataflowsRequest;
use datadog_api_client::datadogV2::model::TwilioMessagesLogsIntegrationDataflowRequest;

#[tokio::main]
async fn main() {
    let body =
        TwilioIntegrationAccountUpdateRequest::new(
            TwilioIntegrationAccountUpdateData::new(
                TwilioIntegrationAccountUpdateAttributes::new()
                    .authentication(
                        TwilioIntegrationAccountAuthenticationUpdate::TwilioIntegrationAccountBasicAuthUpdate(
                            Box::new(
                                TwilioIntegrationAccountBasicAuthUpdate::new(
                                    TwilioIntegrationAccountBasicAuthType::BASIC,
                                )
                                    .password("your-password".to_string())
                                    .username("datadog".to_string()),
                            ),
                        ),
                    )
                    .dataflows(
                        TwilioIntegrationDataflowsRequest::new()
                            .twilio_alerts_logs(TwilioAlertsLogsIntegrationDataflowRequest::new().enabled(true))
                            .twilio_call_summaries_logs(
                                TwilioCallSummariesLogsIntegrationDataflowRequest::new().enabled(true),
                            )
                            .twilio_cloud_cost_metrics(
                                TwilioCloudCostMetricsIntegrationDataflowRequest::new().enabled(true),
                            )
                            .twilio_events_logs(TwilioEventsLogsIntegrationDataflowRequest::new().enabled(true))
                            .twilio_messages_logs(TwilioMessagesLogsIntegrationDataflowRequest::new().enabled(true)),
                    )
                    .name("twilio-prod".to_string())
                    .settings(
                        TwilioIntegrationAccountSettingsUpdate::new()
                            .account_sid("ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".to_string())
                            .censor_logs(true),
                    ),
                "953a0060-81ec-4221-aed4-d4733b59cd96".to_string(),
                IntegrationAccountType::INTEGRATION_ACCOUNT,
            ),
        );
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.UpdateTwilioIntegrationAccount", true);
    let api = TwilioIntegrationAPI::with_config(configuration);
    let resp = api
        .update_twilio_integration_account("account_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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run
/**
 * Update a Twilio integration account returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
configuration.unstableOperations["v2.updateTwilioIntegrationAccount"] = true;
const apiInstance = new v2.TwilioIntegrationApi(configuration);

const params: v2.TwilioIntegrationApiUpdateTwilioIntegrationAccountRequest = {
  body: {
    data: {
      attributes: {
        authentication: {
          authType: "basic",
          password: "your-password",
          username: "datadog",
        },
        dataflows: {
          twilioAlertsLogs: {
            enabled: true,
          },
          twilioCallSummariesLogs: {
            enabled: true,
          },
          twilioCloudCostMetrics: {
            enabled: true,
          },
          twilioEventsLogs: {
            enabled: true,
          },
          twilioMessagesLogs: {
            enabled: true,
          },
        },
        name: "twilio-prod",
        settings: {
          accountSid: "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
          censorLogs: true,
        },
      },
      id: "953a0060-81ec-4221-aed4-d4733b59cd96",
      type: "integration-account",
    },
  },
  accountId: "account_id",
};

apiInstance
  .updateTwilioIntegrationAccount(params)
  .then((data: v2.TwilioIntegrationAccountResponse) => {
    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.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"