AWS 통합 생성하기
https://api.datadoghq.com/api/v2/integration/aws/accountshttps://api.us3.datadoghq.com/api/v2/integration/aws/accountshttps://api.us5.datadoghq.com/api/v2/integration/aws/accountshttps://api.datadoghq.eu/api/v2/integration/aws/accountshttps://api.ap1.datadoghq.com/api/v2/integration/aws/accountshttps://api.ap2.datadoghq.com/api/v2/integration/aws/accountshttps://api.uk1.datadoghq.com/api/v2/integration/aws/accountshttps://api.ddog-gov.com/api/v2/integration/aws/accountshttps://api.us2.ddog-gov.com/api/v2/integration/aws/accounts개요
새 AWS 계정 통합 구성을 생성합니다.
요청
Body Data (required)
data [required]AWS 계정 생성 요청 본문입니다.
attributes [required]The AWS Account Integration Config to be created.
account_tagsTags to apply to all hosts and metrics reporting for this account. Defaults to [].
auth_config [required]AWS Authentication config.
Object 1AWS Authentication config to integrate your account using an access key pair.
access_key_id [required]AWS Access Key ID.
secret_access_keyAWS Secret Access Key.
Object 2AWS Authentication config to integrate your account using an IAM role.
external_idAWS IAM External ID for associated role.
role_name [required]AWS IAM Role name.
aws_account_id [required]AWS Account ID.
aws_partition [required]AWS partition your AWS account is scoped to. Defaults to aws.
See Partitions
in the AWS documentation for more information.
aws, aws-cn, aws-us-govaws_regionsAWS Regions to collect data from. Defaults to include_all.
Object 1Include all regions. Defaults to true.
include_all [required]Include all regions.
Object 2Include only these regions.
include_only [required]Include only these regions.
logs_configAWS Logs Collection config.
lambda_forwarderLog Autosubscription configuration for Datadog Forwarder Lambda functions. Automatically set up triggers for existing and new logs for some services, ensuring no logs from new resources are missed and saving time spent on manual configuration.
lambdasList of Datadog Lambda Log Forwarder ARNs in your AWS account. Defaults to [].
log_source_configLog source configuration.
tag_filtersList of AWS log source tag filters. Defaults to [].
sourceThe AWS log source to which the tag filters defined in tags are applied.
tagsThe AWS resource tags to filter on for the log source specified by source.
sourcesList of service IDs set to enable automatic log collection. Discover the list of available services with the Get list of AWS log ready services endpoint.
metrics_configAWS Metrics Collection config.
automute_enabledEnable EC2 automute for AWS metrics. Defaults to true.
collect_cloudwatch_alarmsEnable CloudWatch alarms collection. Defaults to false.
collect_custom_metricsEnable custom metrics collection. Defaults to false.
collect_service_quotasEnable Service Quotas collection. Defaults to false.
enabledEnable AWS metrics collection. Defaults to true.
metric_name_filtersAWS CloudWatch metric name filters. Each filter applies to a single namespace.
Exactly one of include_only or exclude_only must be set on each filter.
Object 1Include only metric names matching one of these patterns for a single namespace.
include_only [required]Include only metric names matching one of these patterns.
namespace [required]The AWS CloudWatch namespace to which this metric name filter applies.
Object 2Exclude metric names matching one of these patterns for a single namespace.
exclude_only [required]Exclude metric names matching one of these patterns.
namespace [required]The AWS CloudWatch namespace to which this metric name filter applies.
namespace_filtersAWS Metrics namespace filters. Defaults to exclude_only.
Object 1Exclude only these namespaces from metrics collection.
Defaults to ["AWS/SQS", "AWS/ElasticMapReduce", "AWS/Usage"].
AWS/SQS, AWS/ElasticMapReduce, and AWS/Usage are excluded by default
to reduce your AWS CloudWatch costs from GetMetricData API calls.
exclude_only [required]Exclude only these namespaces from metrics collection.
Defaults to ["AWS/SQS", "AWS/ElasticMapReduce", "AWS/Usage"].
AWS/SQS, AWS/ElasticMapReduce, and AWS/Usage are excluded by default
to reduce your AWS CloudWatch costs from GetMetricData API calls.
Object 2Include only these namespaces.
include_only [required]Include only these namespaces.
tag_filtersAWS Metrics collection tag filters list. Defaults to [].
namespaceThe AWS service for which the tag filters defined in tags will be applied.
tagsThe AWS resource tags to filter on for the service specified by namespace.
resources_configAWS Resources Collection config.
cloud_security_posture_management_collectionEnable Cloud Security Management to scan AWS resources for vulnerabilities, misconfigurations,
identity risks, and compliance violations. Defaults to false.
Requires extended_collection to be set to true.
extended_collectionWhether Datadog collects additional attributes and configuration information about the resources
in your AWS account. Defaults to true. Required for cloud_security_posture_management_collection.
traces_configAWS Traces Collection config.
xray_servicesAWS X-Ray services to collect traces from. Defaults to include_only.
Object 1Include all services.
include_all [required]Include all services.
Object 2Include only these services. Defaults to [].
include_only [required]Include only these services.
type [required]AWS Account resource type.
accountaccountCreate an AWS account returns "AWS Account object" response
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"role_name": "DatadogIntegrationRole"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}Create an AWS integration returns "AWS Account object" response
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}응답
AWS Account object
AWS Account response body.
data [required]AWS Account response data.
attributesAWS Account response attributes.
account_tagsTags to apply to all hosts and metrics reporting for this account. Defaults to [].
auth_configAWS Authentication config.
Object 1AWS Authentication config to integrate your account using an access key pair.
access_key_id [required]AWS Access Key ID.
Object 2AWS Authentication config to integrate your account using an IAM role.
external_idAWS IAM External ID for associated role.
role_name [required]AWS IAM Role name.
aws_account_id [required]AWS Account ID.
aws_partitionAWS partition your AWS account is scoped to. Defaults to aws.
See Partitions
in the AWS documentation for more information.
aws, aws-cn, aws-us-govaws_regionsAWS Regions to collect data from. Defaults to include_all.
Object 1Include all regions. Defaults to true.
include_all [required]Include all regions.
Object 2Include only these regions.
include_only [required]Include only these regions.
created_atTimestamp of when the account integration was created.
logs_configAWS Logs Collection config.
lambda_forwarderLog Autosubscription configuration for Datadog Forwarder Lambda functions. Automatically set up triggers for existing and new logs for some services, ensuring no logs from new resources are missed and saving time spent on manual configuration.
lambdasList of Datadog Lambda Log Forwarder ARNs in your AWS account. Defaults to [].
log_source_configLog source configuration.
tag_filtersList of AWS log source tag filters. Defaults to [].
sourceThe AWS log source to which the tag filters defined in tags are applied.
tagsThe AWS resource tags to filter on for the log source specified by source.
sourcesList of service IDs set to enable automatic log collection. Discover the list of available services with the Get list of AWS log ready services endpoint.
metrics_configAWS Metrics Collection config.
automute_enabledEnable EC2 automute for AWS metrics. Defaults to true.
collect_cloudwatch_alarmsEnable CloudWatch alarms collection. Defaults to false.
collect_custom_metricsEnable custom metrics collection. Defaults to false.
collect_service_quotasEnable Service Quotas collection. Defaults to false.
enabledEnable AWS metrics collection. Defaults to true.
metric_name_filtersAWS CloudWatch metric name filters. Each filter applies to a single namespace.
Exactly one of include_only or exclude_only must be set on each filter.
Object 1Include only metric names matching one of these patterns for a single namespace.
include_only [required]Include only metric names matching one of these patterns.
namespace [required]The AWS CloudWatch namespace to which this metric name filter applies.
Object 2Exclude metric names matching one of these patterns for a single namespace.
exclude_only [required]Exclude metric names matching one of these patterns.
namespace [required]The AWS CloudWatch namespace to which this metric name filter applies.
namespace_filtersAWS Metrics namespace filters. Defaults to exclude_only.
Object 1Exclude only these namespaces from metrics collection.
Defaults to ["AWS/SQS", "AWS/ElasticMapReduce", "AWS/Usage"].
AWS/SQS, AWS/ElasticMapReduce, and AWS/Usage are excluded by default
to reduce your AWS CloudWatch costs from GetMetricData API calls.
exclude_only [required]Exclude only these namespaces from metrics collection.
Defaults to ["AWS/SQS", "AWS/ElasticMapReduce", "AWS/Usage"].
AWS/SQS, AWS/ElasticMapReduce, and AWS/Usage are excluded by default
to reduce your AWS CloudWatch costs from GetMetricData API calls.
Object 2Include only these namespaces.
include_only [required]Include only these namespaces.
tag_filtersAWS Metrics collection tag filters list. Defaults to [].
namespaceThe AWS service for which the tag filters defined in tags will be applied.
tagsThe AWS resource tags to filter on for the service specified by namespace.
modified_atTimestamp of when the account integration was updated.
resources_configAWS Resources Collection config.
cloud_security_posture_management_collectionEnable Cloud Security Management to scan AWS resources for vulnerabilities, misconfigurations,
identity risks, and compliance violations. Defaults to false.
Requires extended_collection to be set to true.
extended_collectionWhether Datadog collects additional attributes and configuration information about the resources
in your AWS account. Defaults to true. Required for cloud_security_posture_management_collection.
traces_configAWS Traces Collection config.
xray_servicesAWS X-Ray services to collect traces from. Defaults to include_only.
Object 1Include all services.
include_all [required]Include all services.
Object 2Include only these services. Defaults to [].
include_only [required]Include only these services.
id [required]Unique Datadog ID of the AWS Account Integration Config. To get the config ID for an account, use the List all AWS integrations endpoint and query by AWS Account ID.
type [required]AWS Account resource type.
accountaccount{
"data": {
"attributes": {
"account_tags": [
"env:prod"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"aws_regions": {
"include_all": true
},
"created_at": "2019-09-19T10:00:00.000Z",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"env:prod"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": false,
"collect_custom_metrics": false,
"collect_service_quotas": false,
"enabled": true,
"metric_name_filters": [
{
"include_only": [
"aws.ec2.network_in"
],
"namespace": "AWS/EC2"
}
],
"namespace_filters": {
"exclude_only": [
"AWS/SQS",
"AWS/ElasticMapReduce",
"AWS/Usage"
]
},
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"datadog:true"
]
}
]
},
"modified_at": "2019-09-19T10:00:00.000Z",
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": true
},
"traces_config": {
"xray_services": {
"include_all": false
}
}
},
"id": "00000000-abcd-0001-0000-000000000000",
"type": "account"
}
}Bad Request
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Forbidden
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Conflict
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Too many requests
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}코드 예시
Create an AWS account returns "AWS Account object" response
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"role_name": "DatadogIntegrationRole"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"role_name": "DatadogIntegrationRole"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"role_name": "DatadogIntegrationRole"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"role_name": "DatadogIntegrationRole"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"role_name": "DatadogIntegrationRole"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"role_name": "DatadogIntegrationRole"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"role_name": "DatadogIntegrationRole"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"role_name": "DatadogIntegrationRole"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"role_name": "DatadogIntegrationRole"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOFCreate an AWS integration returns "AWS Account object" response
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/integration/aws/accounts" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_tags": [
"key:value"
],
"auth_config": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
},
"aws_account_id": "123456789012",
"aws_partition": "aws",
"logs_config": {
"lambda_forwarder": {
"lambdas": [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
],
"log_source_config": {
"tag_filters": [
{
"source": "s3",
"tags": [
"test:test"
]
}
]
},
"sources": [
"s3"
]
}
},
"metrics_config": {
"automute_enabled": true,
"collect_cloudwatch_alarms": true,
"collect_custom_metrics": true,
"enabled": true,
"tag_filters": [
{
"namespace": "AWS/EC2",
"tags": [
"key:value"
]
}
]
},
"resources_config": {
"cloud_security_posture_management_collection": false,
"extended_collection": false
},
"traces_config": {}
},
"type": "account"
}
}
EOFCreate an AWS account returns "AWS Account object" response
// Create an AWS account returns "AWS Account object" 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.AWSAccountCreateRequest{
Data: datadogV2.AWSAccountCreateRequestData{
Attributes: datadogV2.AWSAccountCreateRequestAttributes{
AccountTags: *datadog.NewNullableList(&[]string{
"key:value",
}),
AuthConfig: datadogV2.AWSAuthConfig{
AWSAuthConfigRole: &datadogV2.AWSAuthConfigRole{
RoleName: "DatadogIntegrationRole",
}},
AwsAccountId: "123456789012",
AwsPartition: datadogV2.AWSACCOUNTPARTITION_AWS,
LogsConfig: &datadogV2.AWSLogsConfig{
LambdaForwarder: &datadogV2.AWSLambdaForwarderConfig{
Lambdas: []string{
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder",
},
LogSourceConfig: &datadogV2.AWSLambdaForwarderConfigLogSourceConfig{
TagFilters: []datadogV2.AWSLogSourceTagFilter{
{
Source: datadog.PtrString("s3"),
Tags: *datadog.NewNullableList(&[]string{
"test:test",
}),
},
},
},
Sources: []string{
"s3",
},
},
},
MetricsConfig: &datadogV2.AWSMetricsConfig{
AutomuteEnabled: datadog.PtrBool(true),
CollectCloudwatchAlarms: datadog.PtrBool(true),
CollectCustomMetrics: datadog.PtrBool(true),
Enabled: datadog.PtrBool(true),
TagFilters: []datadogV2.AWSNamespaceTagFilter{
{
Namespace: datadog.PtrString("AWS/EC2"),
Tags: *datadog.NewNullableList(&[]string{
"key:value",
}),
},
},
},
ResourcesConfig: &datadogV2.AWSResourcesConfig{
CloudSecurityPostureManagementCollection: datadog.PtrBool(false),
ExtendedCollection: datadog.PtrBool(false),
},
TracesConfig: &datadogV2.AWSTracesConfig{},
},
Type: datadogV2.AWSACCOUNTTYPE_ACCOUNT,
},
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewAWSIntegrationApi(apiClient)
resp, r, err := api.CreateAWSAccount(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `AWSIntegrationApi.CreateAWSAccount`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `AWSIntegrationApi.CreateAWSAccount`:\n%s\n", responseContent)
}
Create an AWS integration returns "AWS Account object" response
// Create an AWS integration returns "AWS Account object" 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.AWSAccountCreateRequest{
Data: datadogV2.AWSAccountCreateRequestData{
Attributes: datadogV2.AWSAccountCreateRequestAttributes{
AccountTags: *datadog.NewNullableList(&[]string{
"key:value",
}),
AuthConfig: datadogV2.AWSAuthConfig{
AWSAuthConfigKeys: &datadogV2.AWSAuthConfigKeys{
AccessKeyId: "AKIAIOSFODNN7EXAMPLE",
SecretAccessKey: datadog.PtrString("wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"),
}},
AwsAccountId: "123456789012",
AwsPartition: datadogV2.AWSACCOUNTPARTITION_AWS,
LogsConfig: &datadogV2.AWSLogsConfig{
LambdaForwarder: &datadogV2.AWSLambdaForwarderConfig{
Lambdas: []string{
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder",
},
LogSourceConfig: &datadogV2.AWSLambdaForwarderConfigLogSourceConfig{
TagFilters: []datadogV2.AWSLogSourceTagFilter{
{
Source: datadog.PtrString("s3"),
Tags: *datadog.NewNullableList(&[]string{
"test:test",
}),
},
},
},
Sources: []string{
"s3",
},
},
},
MetricsConfig: &datadogV2.AWSMetricsConfig{
AutomuteEnabled: datadog.PtrBool(true),
CollectCloudwatchAlarms: datadog.PtrBool(true),
CollectCustomMetrics: datadog.PtrBool(true),
Enabled: datadog.PtrBool(true),
TagFilters: []datadogV2.AWSNamespaceTagFilter{
{
Namespace: datadog.PtrString("AWS/EC2"),
Tags: *datadog.NewNullableList(&[]string{
"key:value",
}),
},
},
},
ResourcesConfig: &datadogV2.AWSResourcesConfig{
CloudSecurityPostureManagementCollection: datadog.PtrBool(false),
ExtendedCollection: datadog.PtrBool(false),
},
TracesConfig: &datadogV2.AWSTracesConfig{},
},
Type: datadogV2.AWSACCOUNTTYPE_ACCOUNT,
},
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewAWSIntegrationApi(apiClient)
resp, r, err := api.CreateAWSAccount(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `AWSIntegrationApi.CreateAWSAccount`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `AWSIntegrationApi.CreateAWSAccount`:\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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"Create an AWS account returns "AWS Account object" response
// Create an AWS account returns "AWS Account object" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.AwsIntegrationApi;
import com.datadog.api.client.v2.model.AWSAccountCreateRequest;
import com.datadog.api.client.v2.model.AWSAccountCreateRequestAttributes;
import com.datadog.api.client.v2.model.AWSAccountCreateRequestData;
import com.datadog.api.client.v2.model.AWSAccountPartition;
import com.datadog.api.client.v2.model.AWSAccountResponse;
import com.datadog.api.client.v2.model.AWSAccountType;
import com.datadog.api.client.v2.model.AWSAuthConfig;
import com.datadog.api.client.v2.model.AWSAuthConfigRole;
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfig;
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfigLogSourceConfig;
import com.datadog.api.client.v2.model.AWSLogSourceTagFilter;
import com.datadog.api.client.v2.model.AWSLogsConfig;
import com.datadog.api.client.v2.model.AWSMetricsConfig;
import com.datadog.api.client.v2.model.AWSNamespaceTagFilter;
import com.datadog.api.client.v2.model.AWSResourcesConfig;
import com.datadog.api.client.v2.model.AWSTracesConfig;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
AwsIntegrationApi apiInstance = new AwsIntegrationApi(defaultClient);
AWSAccountCreateRequest body =
new AWSAccountCreateRequest()
.data(
new AWSAccountCreateRequestData()
.attributes(
new AWSAccountCreateRequestAttributes()
.accountTags(Collections.singletonList("key:value"))
.authConfig(
new AWSAuthConfig(
new AWSAuthConfigRole().roleName("DatadogIntegrationRole")))
.awsAccountId("123456789012")
.awsPartition(AWSAccountPartition.AWS)
.logsConfig(
new AWSLogsConfig()
.lambdaForwarder(
new AWSLambdaForwarderConfig()
.lambdas(
Collections.singletonList(
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"))
.logSourceConfig(
new AWSLambdaForwarderConfigLogSourceConfig()
.tagFilters(
Collections.singletonList(
new AWSLogSourceTagFilter()
.source("s3")
.tags(
Collections.singletonList(
"test:test")))))
.sources(Collections.singletonList("s3"))))
.metricsConfig(
new AWSMetricsConfig()
.automuteEnabled(true)
.collectCloudwatchAlarms(true)
.collectCustomMetrics(true)
.enabled(true)
.tagFilters(
Collections.singletonList(
new AWSNamespaceTagFilter()
.namespace("AWS/EC2")
.tags(Collections.singletonList("key:value")))))
.resourcesConfig(
new AWSResourcesConfig()
.cloudSecurityPostureManagementCollection(false)
.extendedCollection(false))
.tracesConfig(new AWSTracesConfig()))
.type(AWSAccountType.ACCOUNT));
try {
AWSAccountResponse result = apiInstance.createAWSAccount(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AwsIntegrationApi#createAWSAccount");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Create an AWS integration returns "AWS Account object" response
// Create an AWS integration returns "AWS Account object" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.AwsIntegrationApi;
import com.datadog.api.client.v2.model.AWSAccountCreateRequest;
import com.datadog.api.client.v2.model.AWSAccountCreateRequestAttributes;
import com.datadog.api.client.v2.model.AWSAccountCreateRequestData;
import com.datadog.api.client.v2.model.AWSAccountPartition;
import com.datadog.api.client.v2.model.AWSAccountResponse;
import com.datadog.api.client.v2.model.AWSAccountType;
import com.datadog.api.client.v2.model.AWSAuthConfig;
import com.datadog.api.client.v2.model.AWSAuthConfigKeys;
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfig;
import com.datadog.api.client.v2.model.AWSLambdaForwarderConfigLogSourceConfig;
import com.datadog.api.client.v2.model.AWSLogSourceTagFilter;
import com.datadog.api.client.v2.model.AWSLogsConfig;
import com.datadog.api.client.v2.model.AWSMetricsConfig;
import com.datadog.api.client.v2.model.AWSNamespaceTagFilter;
import com.datadog.api.client.v2.model.AWSResourcesConfig;
import com.datadog.api.client.v2.model.AWSTracesConfig;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
AwsIntegrationApi apiInstance = new AwsIntegrationApi(defaultClient);
AWSAccountCreateRequest body =
new AWSAccountCreateRequest()
.data(
new AWSAccountCreateRequestData()
.attributes(
new AWSAccountCreateRequestAttributes()
.accountTags(Collections.singletonList("key:value"))
.authConfig(
new AWSAuthConfig(
new AWSAuthConfigKeys()
.accessKeyId("AKIAIOSFODNN7EXAMPLE")
.secretAccessKey(
"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY")))
.awsAccountId("123456789012")
.awsPartition(AWSAccountPartition.AWS)
.logsConfig(
new AWSLogsConfig()
.lambdaForwarder(
new AWSLambdaForwarderConfig()
.lambdas(
Collections.singletonList(
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"))
.logSourceConfig(
new AWSLambdaForwarderConfigLogSourceConfig()
.tagFilters(
Collections.singletonList(
new AWSLogSourceTagFilter()
.source("s3")
.tags(
Collections.singletonList(
"test:test")))))
.sources(Collections.singletonList("s3"))))
.metricsConfig(
new AWSMetricsConfig()
.automuteEnabled(true)
.collectCloudwatchAlarms(true)
.collectCustomMetrics(true)
.enabled(true)
.tagFilters(
Collections.singletonList(
new AWSNamespaceTagFilter()
.namespace("AWS/EC2")
.tags(Collections.singletonList("key:value")))))
.resourcesConfig(
new AWSResourcesConfig()
.cloudSecurityPostureManagementCollection(false)
.extendedCollection(false))
.tracesConfig(new AWSTracesConfig()))
.type(AWSAccountType.ACCOUNT));
try {
AWSAccountResponse result = apiInstance.createAWSAccount(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AwsIntegrationApi#createAWSAccount");
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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"Create an AWS account returns "AWS Account object" response
"""
Create an AWS account returns "AWS Account object" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.aws_integration_api import AWSIntegrationApi
from datadog_api_client.v2.model.aws_account_create_request import AWSAccountCreateRequest
from datadog_api_client.v2.model.aws_account_create_request_attributes import AWSAccountCreateRequestAttributes
from datadog_api_client.v2.model.aws_account_create_request_data import AWSAccountCreateRequestData
from datadog_api_client.v2.model.aws_account_partition import AWSAccountPartition
from datadog_api_client.v2.model.aws_account_type import AWSAccountType
from datadog_api_client.v2.model.aws_auth_config_role import AWSAuthConfigRole
from datadog_api_client.v2.model.aws_lambda_forwarder_config import AWSLambdaForwarderConfig
from datadog_api_client.v2.model.aws_lambda_forwarder_config_log_source_config import (
AWSLambdaForwarderConfigLogSourceConfig,
)
from datadog_api_client.v2.model.aws_log_source_tag_filter import AWSLogSourceTagFilter
from datadog_api_client.v2.model.aws_logs_config import AWSLogsConfig
from datadog_api_client.v2.model.aws_metrics_config import AWSMetricsConfig
from datadog_api_client.v2.model.aws_namespace_tag_filter import AWSNamespaceTagFilter
from datadog_api_client.v2.model.aws_resources_config import AWSResourcesConfig
from datadog_api_client.v2.model.aws_traces_config import AWSTracesConfig
body = AWSAccountCreateRequest(
data=AWSAccountCreateRequestData(
attributes=AWSAccountCreateRequestAttributes(
account_tags=[
"key:value",
],
auth_config=AWSAuthConfigRole(
role_name="DatadogIntegrationRole",
),
aws_account_id="123456789012",
aws_partition=AWSAccountPartition.AWS,
logs_config=AWSLogsConfig(
lambda_forwarder=AWSLambdaForwarderConfig(
lambdas=[
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder",
],
log_source_config=AWSLambdaForwarderConfigLogSourceConfig(
tag_filters=[
AWSLogSourceTagFilter(
source="s3",
tags=[
"test:test",
],
),
],
),
sources=[
"s3",
],
),
),
metrics_config=AWSMetricsConfig(
automute_enabled=True,
collect_cloudwatch_alarms=True,
collect_custom_metrics=True,
enabled=True,
tag_filters=[
AWSNamespaceTagFilter(
namespace="AWS/EC2",
tags=[
"key:value",
],
),
],
),
resources_config=AWSResourcesConfig(
cloud_security_posture_management_collection=False,
extended_collection=False,
),
traces_config=AWSTracesConfig(),
),
type=AWSAccountType.ACCOUNT,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = AWSIntegrationApi(api_client)
response = api_instance.create_aws_account(body=body)
print(response)
Create an AWS integration returns "AWS Account object" response
"""
Create an AWS integration returns "AWS Account object" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.aws_integration_api import AWSIntegrationApi
from datadog_api_client.v2.model.aws_account_create_request import AWSAccountCreateRequest
from datadog_api_client.v2.model.aws_account_create_request_attributes import AWSAccountCreateRequestAttributes
from datadog_api_client.v2.model.aws_account_create_request_data import AWSAccountCreateRequestData
from datadog_api_client.v2.model.aws_account_partition import AWSAccountPartition
from datadog_api_client.v2.model.aws_account_type import AWSAccountType
from datadog_api_client.v2.model.aws_auth_config_keys import AWSAuthConfigKeys
from datadog_api_client.v2.model.aws_lambda_forwarder_config import AWSLambdaForwarderConfig
from datadog_api_client.v2.model.aws_lambda_forwarder_config_log_source_config import (
AWSLambdaForwarderConfigLogSourceConfig,
)
from datadog_api_client.v2.model.aws_log_source_tag_filter import AWSLogSourceTagFilter
from datadog_api_client.v2.model.aws_logs_config import AWSLogsConfig
from datadog_api_client.v2.model.aws_metrics_config import AWSMetricsConfig
from datadog_api_client.v2.model.aws_namespace_tag_filter import AWSNamespaceTagFilter
from datadog_api_client.v2.model.aws_resources_config import AWSResourcesConfig
from datadog_api_client.v2.model.aws_traces_config import AWSTracesConfig
body = AWSAccountCreateRequest(
data=AWSAccountCreateRequestData(
attributes=AWSAccountCreateRequestAttributes(
account_tags=[
"key:value",
],
auth_config=AWSAuthConfigKeys(
access_key_id="AKIAIOSFODNN7EXAMPLE",
secret_access_key="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
),
aws_account_id="123456789012",
aws_partition=AWSAccountPartition.AWS,
logs_config=AWSLogsConfig(
lambda_forwarder=AWSLambdaForwarderConfig(
lambdas=[
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder",
],
log_source_config=AWSLambdaForwarderConfigLogSourceConfig(
tag_filters=[
AWSLogSourceTagFilter(
source="s3",
tags=[
"test:test",
],
),
],
),
sources=[
"s3",
],
),
),
metrics_config=AWSMetricsConfig(
automute_enabled=True,
collect_cloudwatch_alarms=True,
collect_custom_metrics=True,
enabled=True,
tag_filters=[
AWSNamespaceTagFilter(
namespace="AWS/EC2",
tags=[
"key:value",
],
),
],
),
resources_config=AWSResourcesConfig(
cloud_security_posture_management_collection=False,
extended_collection=False,
),
traces_config=AWSTracesConfig(),
),
type=AWSAccountType.ACCOUNT,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = AWSIntegrationApi(api_client)
response = api_instance.create_aws_account(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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"Create an AWS account returns "AWS Account object" response
# Create an AWS account returns "AWS Account object" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::AWSIntegrationAPI.new
body = DatadogAPIClient::V2::AWSAccountCreateRequest.new({
data: DatadogAPIClient::V2::AWSAccountCreateRequestData.new({
attributes: DatadogAPIClient::V2::AWSAccountCreateRequestAttributes.new({
account_tags: [
"key:value",
],
auth_config: DatadogAPIClient::V2::AWSAuthConfigRole.new({
role_name: "DatadogIntegrationRole",
}),
aws_account_id: "123456789012",
aws_partition: DatadogAPIClient::V2::AWSAccountPartition::AWS,
logs_config: DatadogAPIClient::V2::AWSLogsConfig.new({
lambda_forwarder: DatadogAPIClient::V2::AWSLambdaForwarderConfig.new({
lambdas: [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder",
],
log_source_config: DatadogAPIClient::V2::AWSLambdaForwarderConfigLogSourceConfig.new({
tag_filters: [
DatadogAPIClient::V2::AWSLogSourceTagFilter.new({
source: "s3",
tags: [
"test:test",
],
}),
],
}),
sources: [
"s3",
],
}),
}),
metrics_config: DatadogAPIClient::V2::AWSMetricsConfig.new({
automute_enabled: true,
collect_cloudwatch_alarms: true,
collect_custom_metrics: true,
enabled: true,
tag_filters: [
DatadogAPIClient::V2::AWSNamespaceTagFilter.new({
namespace: "AWS/EC2",
tags: [
"key:value",
],
}),
],
}),
resources_config: DatadogAPIClient::V2::AWSResourcesConfig.new({
cloud_security_posture_management_collection: false,
extended_collection: false,
}),
traces_config: DatadogAPIClient::V2::AWSTracesConfig.new({}),
}),
type: DatadogAPIClient::V2::AWSAccountType::ACCOUNT,
}),
})
p api_instance.create_aws_account(body)
Create an AWS integration returns "AWS Account object" response
# Create an AWS integration returns "AWS Account object" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V2::AWSIntegrationAPI.new
body = DatadogAPIClient::V2::AWSAccountCreateRequest.new({
data: DatadogAPIClient::V2::AWSAccountCreateRequestData.new({
attributes: DatadogAPIClient::V2::AWSAccountCreateRequestAttributes.new({
account_tags: [
"key:value",
],
auth_config: DatadogAPIClient::V2::AWSAuthConfigKeys.new({
access_key_id: "AKIAIOSFODNN7EXAMPLE",
secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
}),
aws_account_id: "123456789012",
aws_partition: DatadogAPIClient::V2::AWSAccountPartition::AWS,
logs_config: DatadogAPIClient::V2::AWSLogsConfig.new({
lambda_forwarder: DatadogAPIClient::V2::AWSLambdaForwarderConfig.new({
lambdas: [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder",
],
log_source_config: DatadogAPIClient::V2::AWSLambdaForwarderConfigLogSourceConfig.new({
tag_filters: [
DatadogAPIClient::V2::AWSLogSourceTagFilter.new({
source: "s3",
tags: [
"test:test",
],
}),
],
}),
sources: [
"s3",
],
}),
}),
metrics_config: DatadogAPIClient::V2::AWSMetricsConfig.new({
automute_enabled: true,
collect_cloudwatch_alarms: true,
collect_custom_metrics: true,
enabled: true,
tag_filters: [
DatadogAPIClient::V2::AWSNamespaceTagFilter.new({
namespace: "AWS/EC2",
tags: [
"key:value",
],
}),
],
}),
resources_config: DatadogAPIClient::V2::AWSResourcesConfig.new({
cloud_security_posture_management_collection: false,
extended_collection: false,
}),
traces_config: DatadogAPIClient::V2::AWSTracesConfig.new({}),
}),
type: DatadogAPIClient::V2::AWSAccountType::ACCOUNT,
}),
})
p api_instance.create_aws_account(body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"Create an AWS account returns "AWS Account object" response
// Create an AWS account returns "AWS Account object" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_aws_integration::AWSIntegrationAPI;
use datadog_api_client::datadogV2::model::AWSAccountCreateRequest;
use datadog_api_client::datadogV2::model::AWSAccountCreateRequestAttributes;
use datadog_api_client::datadogV2::model::AWSAccountCreateRequestData;
use datadog_api_client::datadogV2::model::AWSAccountPartition;
use datadog_api_client::datadogV2::model::AWSAccountType;
use datadog_api_client::datadogV2::model::AWSAuthConfig;
use datadog_api_client::datadogV2::model::AWSAuthConfigRole;
use datadog_api_client::datadogV2::model::AWSLambdaForwarderConfig;
use datadog_api_client::datadogV2::model::AWSLambdaForwarderConfigLogSourceConfig;
use datadog_api_client::datadogV2::model::AWSLogSourceTagFilter;
use datadog_api_client::datadogV2::model::AWSLogsConfig;
use datadog_api_client::datadogV2::model::AWSMetricsConfig;
use datadog_api_client::datadogV2::model::AWSNamespaceTagFilter;
use datadog_api_client::datadogV2::model::AWSResourcesConfig;
use datadog_api_client::datadogV2::model::AWSTracesConfig;
#[tokio::main]
async fn main() {
let body = AWSAccountCreateRequest::new(AWSAccountCreateRequestData::new(
AWSAccountCreateRequestAttributes::new(
AWSAuthConfig::AWSAuthConfigRole(Box::new(AWSAuthConfigRole::new(
"DatadogIntegrationRole".to_string(),
))),
"123456789012".to_string(),
AWSAccountPartition::AWS,
)
.account_tags(Some(vec!["key:value".to_string()]))
.logs_config(
AWSLogsConfig::new().lambda_forwarder(
AWSLambdaForwarderConfig::new()
.lambdas(vec![
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
.to_string(),
])
.log_source_config(AWSLambdaForwarderConfigLogSourceConfig::new().tag_filters(
vec![
AWSLogSourceTagFilter::new()
.source("s3".to_string())
.tags(Some(vec!["test:test".to_string()]))
],
))
.sources(vec!["s3".to_string()]),
),
)
.metrics_config(
AWSMetricsConfig::new()
.automute_enabled(true)
.collect_cloudwatch_alarms(true)
.collect_custom_metrics(true)
.enabled(true)
.tag_filters(vec![AWSNamespaceTagFilter::new()
.namespace("AWS/EC2".to_string())
.tags(Some(vec!["key:value".to_string()]))]),
)
.resources_config(
AWSResourcesConfig::new()
.cloud_security_posture_management_collection(false)
.extended_collection(false),
)
.traces_config(AWSTracesConfig::new()),
AWSAccountType::ACCOUNT,
));
let configuration = datadog::Configuration::new();
let api = AWSIntegrationAPI::with_config(configuration);
let resp = api.create_aws_account(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
Create an AWS integration returns "AWS Account object" response
// Create an AWS integration returns "AWS Account object" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_aws_integration::AWSIntegrationAPI;
use datadog_api_client::datadogV2::model::AWSAccountCreateRequest;
use datadog_api_client::datadogV2::model::AWSAccountCreateRequestAttributes;
use datadog_api_client::datadogV2::model::AWSAccountCreateRequestData;
use datadog_api_client::datadogV2::model::AWSAccountPartition;
use datadog_api_client::datadogV2::model::AWSAccountType;
use datadog_api_client::datadogV2::model::AWSAuthConfig;
use datadog_api_client::datadogV2::model::AWSAuthConfigKeys;
use datadog_api_client::datadogV2::model::AWSLambdaForwarderConfig;
use datadog_api_client::datadogV2::model::AWSLambdaForwarderConfigLogSourceConfig;
use datadog_api_client::datadogV2::model::AWSLogSourceTagFilter;
use datadog_api_client::datadogV2::model::AWSLogsConfig;
use datadog_api_client::datadogV2::model::AWSMetricsConfig;
use datadog_api_client::datadogV2::model::AWSNamespaceTagFilter;
use datadog_api_client::datadogV2::model::AWSResourcesConfig;
use datadog_api_client::datadogV2::model::AWSTracesConfig;
#[tokio::main]
async fn main() {
let body = AWSAccountCreateRequest::new(AWSAccountCreateRequestData::new(
AWSAccountCreateRequestAttributes::new(
AWSAuthConfig::AWSAuthConfigKeys(Box::new(
AWSAuthConfigKeys::new("AKIAIOSFODNN7EXAMPLE".to_string())
.secret_access_key("wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY".to_string()),
)),
"123456789012".to_string(),
AWSAccountPartition::AWS,
)
.account_tags(Some(vec!["key:value".to_string()]))
.logs_config(
AWSLogsConfig::new().lambda_forwarder(
AWSLambdaForwarderConfig::new()
.lambdas(vec![
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
.to_string(),
])
.log_source_config(AWSLambdaForwarderConfigLogSourceConfig::new().tag_filters(
vec![
AWSLogSourceTagFilter::new()
.source("s3".to_string())
.tags(Some(vec!["test:test".to_string()]))
],
))
.sources(vec!["s3".to_string()]),
),
)
.metrics_config(
AWSMetricsConfig::new()
.automute_enabled(true)
.collect_cloudwatch_alarms(true)
.collect_custom_metrics(true)
.enabled(true)
.tag_filters(vec![AWSNamespaceTagFilter::new()
.namespace("AWS/EC2".to_string())
.tags(Some(vec!["key:value".to_string()]))]),
)
.resources_config(
AWSResourcesConfig::new()
.cloud_security_posture_management_collection(false)
.extended_collection(false),
)
.traces_config(AWSTracesConfig::new()),
AWSAccountType::ACCOUNT,
));
let configuration = datadog::Configuration::new();
let api = AWSIntegrationAPI::with_config(configuration);
let resp = api.create_aws_account(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.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runCreate an AWS account returns "AWS Account object" response
/**
* Create an AWS account returns "AWS Account object" response
*/
import { client, v2 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration({
authMethods: {
AuthZ: {
accessToken: process.env.DD_BEARER_TOKEN as string,
},
},
});
const apiInstance = new v2.AWSIntegrationApi(configuration);
const params: v2.AWSIntegrationApiCreateAWSAccountRequest = {
body: {
data: {
attributes: {
accountTags: ["key:value"],
authConfig: {
roleName: "DatadogIntegrationRole",
},
awsAccountId: "123456789012",
awsPartition: "aws",
logsConfig: {
lambdaForwarder: {
lambdas: [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder",
],
logSourceConfig: {
tagFilters: [
{
source: "s3",
tags: ["test:test"],
},
],
},
sources: ["s3"],
},
},
metricsConfig: {
automuteEnabled: true,
collectCloudwatchAlarms: true,
collectCustomMetrics: true,
enabled: true,
tagFilters: [
{
namespace: "AWS/EC2",
tags: ["key:value"],
},
],
},
resourcesConfig: {
cloudSecurityPostureManagementCollection: false,
extendedCollection: false,
},
tracesConfig: {},
},
type: "account",
},
},
};
apiInstance
.createAWSAccount(params)
.then((data: v2.AWSAccountResponse) => {
console.log(
"API called successfully. Returned data: " + JSON.stringify(data)
);
})
.catch((error: any) => console.error(error));
Create an AWS integration returns "AWS Account object" response
/**
* Create an AWS integration returns "AWS Account object" response
*/
import { client, v2 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration({
authMethods: {
AuthZ: {
accessToken: process.env.DD_BEARER_TOKEN as string,
},
},
});
const apiInstance = new v2.AWSIntegrationApi(configuration);
const params: v2.AWSIntegrationApiCreateAWSAccountRequest = {
body: {
data: {
attributes: {
accountTags: ["key:value"],
authConfig: {
accessKeyId: "AKIAIOSFODNN7EXAMPLE",
secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
},
awsAccountId: "123456789012",
awsPartition: "aws",
logsConfig: {
lambdaForwarder: {
lambdas: [
"arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder",
],
logSourceConfig: {
tagFilters: [
{
source: "s3",
tags: ["test:test"],
},
],
},
sources: ["s3"],
},
},
metricsConfig: {
automuteEnabled: true,
collectCloudwatchAlarms: true,
collectCustomMetrics: true,
enabled: true,
tagFilters: [
{
namespace: "AWS/EC2",
tags: ["key:value"],
},
],
},
resourcesConfig: {
cloudSecurityPostureManagementCollection: false,
extendedCollection: false,
},
tracesConfig: {},
},
type: "account",
},
},
};
apiInstance
.createAWSAccount(params)
.then((data: v2.AWSAccountResponse) => {
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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"https://api.datadoghq.com/api/v1/integration/awshttps://api.us3.datadoghq.com/api/v1/integration/awshttps://api.us5.datadoghq.com/api/v1/integration/awshttps://api.datadoghq.eu/api/v1/integration/awshttps://api.ap1.datadoghq.com/api/v1/integration/awshttps://api.ap2.datadoghq.com/api/v1/integration/awshttps://api.uk1.datadoghq.com/api/v1/integration/awshttps://api.ddog-gov.com/api/v1/integration/awshttps://api.us2.ddog-gov.com/api/v1/integration/aws개요
이 엔드포인트는 지원이 중단되었습니다. 대신 V2 엔드포인트를 사용하세요. Datadog-Amazon Web Services 통합을 생성합니다.
POST 메서드를 사용하면 Datadog 조직의 기존 구성에 새 구성을 추가하여
통합 구성을 업데이트합니다.
역할 기반 인증을 위한 고유한 AWS 계정 ID입니다.
요청
Body Data (required)
AWS 요청 객체
access_key_id이 통합과 연결된 AWS 계정을 반환합니다.
account_idYour AWS Account ID without dashes.
account_specific_namespace_rulesAn object (in the form {"namespace1":true/false, "namespace2":true/false}) containing user-supplied overrides
for AWS namespace metric collection. Important: This field only contains namespaces explicitly configured through API calls,
not the comprehensive enabled or disabled status of all namespaces. If a namespace is absent from this field, it uses Datadog's
internal defaults (all namespaces enabled by default, except AWS/SQS, AWS/ElasticMapReduce, and AWS/Usage).
For a complete view of all namespace statuses, use the V2 AWS Integration API instead.
<any-key>A list of additional properties.
cspm_resource_collection_enabledWhether Datadog collects cloud security posture management resources from your AWS account. This includes additional resources not covered under the general resource_collection.
falseextended_resource_collection_enabledWhether Datadog collects additional attributes and configuration information about the resources in your AWS account. Required for cspm_resource_collection.
falsefilter_tagsThe array of EC2 tags (in the form key:value) defines a filter that Datadog uses when collecting metrics from EC2.
Wildcards, such as ? (for single characters) and * (for multiple characters) can also be used.
Only hosts that match one of the defined tags
will be imported into Datadog. The rest will be ignored.
Host matching a given tag can also be excluded by adding ! before the tag.
For example, env:production,instance-type:c1.*,!region:us-east-1
host_tagsArray of tags (in the form key:value) to add to all hosts
and metrics reporting through this integration.
metrics_collection_enabledWhether Datadog collects metrics for this AWS account.
trueresource_collection_enabledDEPRECATED Deprecated in favor of 'extended_resource_collection_enabled'. Whether Datadog collects a standard set of resources from your AWS account.
falserole_nameYour Datadog role delegation name.
secret_access_keyYour AWS secret access key. Only required if your AWS account is a GovCloud or China account.
{
"account_id": "163662907100",
"account_specific_namespace_rules": {
"auto_scaling": false
},
"cspm_resource_collection_enabled": true,
"excluded_regions": [
"us-east-1",
"us-west-2"
],
"extended_resource_collection_enabled": true,
"filter_tags": [
"$KEY:$VALUE"
],
"host_tags": [
"$KEY:$VALUE"
],
"metrics_collection_enabled": false,
"role_name": "DatadogAWSIntegrationRole"
}응답
OK
The Response returned by the AWS Create Account call.
external_idAWS external_id.
{
"external_id": "string"
}Bad Request
Error response object.
errors [required]Array of errors returned by the API.
{
"errors": [
"Bad Request"
]
}Authentication Error
Error response object.
errors [required]Array of errors returned by the API.
{
"errors": [
"Bad Request"
]
}Conflict Error
Error response object.
errors [required]Array of errors returned by the API.
{
"errors": [
"Bad Request"
]
}Too many requests
Error response object.
errors [required]Array of errors returned by the API.
{
"errors": [
"Bad Request"
]
}코드 예시
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v1/integration/aws" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"account_id": "163662907100",
"account_specific_namespace_rules": {
"auto_scaling": false
},
"cspm_resource_collection_enabled": true,
"excluded_regions": [
"us-east-1",
"us-west-2"
],
"extended_resource_collection_enabled": true,
"filter_tags": [
"$KEY:$VALUE"
],
"host_tags": [
"$KEY:$VALUE"
],
"metrics_collection_enabled": false,
"role_name": "DatadogAWSIntegrationRole"
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v1/integration/aws" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"account_id": "163662907100",
"account_specific_namespace_rules": {
"auto_scaling": false
},
"cspm_resource_collection_enabled": true,
"excluded_regions": [
"us-east-1",
"us-west-2"
],
"extended_resource_collection_enabled": true,
"filter_tags": [
"$KEY:$VALUE"
],
"host_tags": [
"$KEY:$VALUE"
],
"metrics_collection_enabled": false,
"role_name": "DatadogAWSIntegrationRole"
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v1/integration/aws" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"account_id": "163662907100",
"account_specific_namespace_rules": {
"auto_scaling": false
},
"cspm_resource_collection_enabled": true,
"excluded_regions": [
"us-east-1",
"us-west-2"
],
"extended_resource_collection_enabled": true,
"filter_tags": [
"$KEY:$VALUE"
],
"host_tags": [
"$KEY:$VALUE"
],
"metrics_collection_enabled": false,
"role_name": "DatadogAWSIntegrationRole"
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v1/integration/aws" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"account_id": "163662907100",
"account_specific_namespace_rules": {
"auto_scaling": false
},
"cspm_resource_collection_enabled": true,
"excluded_regions": [
"us-east-1",
"us-west-2"
],
"extended_resource_collection_enabled": true,
"filter_tags": [
"$KEY:$VALUE"
],
"host_tags": [
"$KEY:$VALUE"
],
"metrics_collection_enabled": false,
"role_name": "DatadogAWSIntegrationRole"
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v1/integration/aws" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"account_id": "163662907100",
"account_specific_namespace_rules": {
"auto_scaling": false
},
"cspm_resource_collection_enabled": true,
"excluded_regions": [
"us-east-1",
"us-west-2"
],
"extended_resource_collection_enabled": true,
"filter_tags": [
"$KEY:$VALUE"
],
"host_tags": [
"$KEY:$VALUE"
],
"metrics_collection_enabled": false,
"role_name": "DatadogAWSIntegrationRole"
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v1/integration/aws" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"account_id": "163662907100",
"account_specific_namespace_rules": {
"auto_scaling": false
},
"cspm_resource_collection_enabled": true,
"excluded_regions": [
"us-east-1",
"us-west-2"
],
"extended_resource_collection_enabled": true,
"filter_tags": [
"$KEY:$VALUE"
],
"host_tags": [
"$KEY:$VALUE"
],
"metrics_collection_enabled": false,
"role_name": "DatadogAWSIntegrationRole"
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v1/integration/aws" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"account_id": "163662907100",
"account_specific_namespace_rules": {
"auto_scaling": false
},
"cspm_resource_collection_enabled": true,
"excluded_regions": [
"us-east-1",
"us-west-2"
],
"extended_resource_collection_enabled": true,
"filter_tags": [
"$KEY:$VALUE"
],
"host_tags": [
"$KEY:$VALUE"
],
"metrics_collection_enabled": false,
"role_name": "DatadogAWSIntegrationRole"
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v1/integration/aws" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"account_id": "163662907100",
"account_specific_namespace_rules": {
"auto_scaling": false
},
"cspm_resource_collection_enabled": true,
"excluded_regions": [
"us-east-1",
"us-west-2"
],
"extended_resource_collection_enabled": true,
"filter_tags": [
"$KEY:$VALUE"
],
"host_tags": [
"$KEY:$VALUE"
],
"metrics_collection_enabled": false,
"role_name": "DatadogAWSIntegrationRole"
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v1/integration/aws" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"account_id": "163662907100",
"account_specific_namespace_rules": {
"auto_scaling": false
},
"cspm_resource_collection_enabled": true,
"excluded_regions": [
"us-east-1",
"us-west-2"
],
"extended_resource_collection_enabled": true,
"filter_tags": [
"$KEY:$VALUE"
],
"host_tags": [
"$KEY:$VALUE"
],
"metrics_collection_enabled": false,
"role_name": "DatadogAWSIntegrationRole"
}
EOF// Create an AWS integration 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/datadogV1"
)
func main() {
body := datadogV1.AWSAccount{
AccountId: datadog.PtrString("163662907100"),
AccountSpecificNamespaceRules: map[string]bool{
"auto_scaling": false,
},
CspmResourceCollectionEnabled: datadog.PtrBool(true),
ExcludedRegions: []string{
"us-east-1",
"us-west-2",
},
ExtendedResourceCollectionEnabled: datadog.PtrBool(true),
FilterTags: []string{
"$KEY:$VALUE",
},
HostTags: []string{
"$KEY:$VALUE",
},
MetricsCollectionEnabled: datadog.PtrBool(false),
RoleName: datadog.PtrString("DatadogAWSIntegrationRole"),
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
apiClient := datadog.NewAPIClient(configuration)
api := datadogV1.NewAWSIntegrationApi(apiClient)
resp, r, err := api.CreateAWSAccount(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `AWSIntegrationApi.CreateAWSAccount`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `AWSIntegrationApi.CreateAWSAccount`:\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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"// Create an AWS integration returns "OK" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.AwsIntegrationApi;
import com.datadog.api.client.v1.model.AWSAccount;
import com.datadog.api.client.v1.model.AWSAccountCreateResponse;
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
AwsIntegrationApi apiInstance = new AwsIntegrationApi(defaultClient);
AWSAccount body =
new AWSAccount()
.accountId("163662907100")
.accountSpecificNamespaceRules(Map.ofEntries(Map.entry("auto_scaling", false)))
.cspmResourceCollectionEnabled(true)
.excludedRegions(Arrays.asList("us-east-1", "us-west-2"))
.extendedResourceCollectionEnabled(true)
.filterTags(Collections.singletonList("$KEY:$VALUE"))
.hostTags(Collections.singletonList("$KEY:$VALUE"))
.metricsCollectionEnabled(false)
.roleName("DatadogAWSIntegrationRole");
try {
AWSAccountCreateResponse result = apiInstance.createAWSAccount(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AwsIntegrationApi#createAWSAccount");
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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java""""
Create an AWS integration returns "OK" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.aws_integration_api import AWSIntegrationApi
from datadog_api_client.v1.model.aws_account import AWSAccount
body = AWSAccount(
account_id="163662907100",
account_specific_namespace_rules=dict(
auto_scaling=False,
),
cspm_resource_collection_enabled=True,
excluded_regions=[
"us-east-1",
"us-west-2",
],
extended_resource_collection_enabled=True,
filter_tags=[
"$KEY:$VALUE",
],
host_tags=[
"$KEY:$VALUE",
],
metrics_collection_enabled=False,
role_name="DatadogAWSIntegrationRole",
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
with ApiClient(configuration) as api_client:
api_instance = AWSIntegrationApi(api_client)
response = api_instance.create_aws_account(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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"# Create an AWS integration returns "OK" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
end
api_instance = DatadogAPIClient::V1::AWSIntegrationAPI.new
body = DatadogAPIClient::V1::AWSAccount.new({
account_id: "163662907100",
account_specific_namespace_rules: {
auto_scaling: false,
},
cspm_resource_collection_enabled: true,
excluded_regions: [
"us-east-1",
"us-west-2",
],
extended_resource_collection_enabled: true,
filter_tags: [
"$KEY:$VALUE",
],
host_tags: [
"$KEY:$VALUE",
],
metrics_collection_enabled: false,
role_name: "DatadogAWSIntegrationRole",
})
p api_instance.create_aws_account(body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"// Create an AWS integration returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_aws_integration::AWSIntegrationAPI;
use datadog_api_client::datadogV1::model::AWSAccount;
use std::collections::BTreeMap;
#[tokio::main]
async fn main() {
let body = AWSAccount::new()
.account_id("163662907100".to_string())
.account_specific_namespace_rules(BTreeMap::from([("auto_scaling".to_string(), false)]))
.cspm_resource_collection_enabled(true)
.excluded_regions(vec!["us-east-1".to_string(), "us-west-2".to_string()])
.extended_resource_collection_enabled(true)
.filter_tags(vec!["$KEY:$VALUE".to_string()])
.host_tags(vec!["$KEY:$VALUE".to_string()])
.metrics_collection_enabled(false)
.role_name("DatadogAWSIntegrationRole".to_string());
let configuration = datadog::Configuration::new();
let api = AWSIntegrationAPI::with_config(configuration);
let resp = api.create_aws_account(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.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run/**
* Create an AWS integration returns "OK" response
*/
import { client, v1 } from "@datadog/datadog-api-client";
const configuration = client.createConfiguration({
authMethods: {
AuthZ: {
accessToken: process.env.DD_BEARER_TOKEN as string,
},
},
});
const apiInstance = new v1.AWSIntegrationApi(configuration);
const params: v1.AWSIntegrationApiCreateAWSAccountRequest = {
body: {
accountId: "163662907100",
accountSpecificNamespaceRules: {
auto_scaling: false,
},
cspmResourceCollectionEnabled: true,
excludedRegions: ["us-east-1", "us-west-2"],
extendedResourceCollectionEnabled: true,
filterTags: ["$KEY:$VALUE"],
hostTags: ["$KEY:$VALUE"],
metricsCollectionEnabled: false,
roleName: "DatadogAWSIntegrationRole",
},
};
apiInstance
.createAWSAccount(params)
.then((data: v1.AWSAccountCreateResponse) => {
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.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"from datadog import initialize, api
options = {
'api_key': '<DATADOG_API_KEY>',
'app_key': '<DATADOG_APPLICATION_KEY>'
}
initialize(**options)
api.AwsIntegration.create(
account_id="<AWS_ACCOUNT_ID>",
host_tags=["tag:example"],
filter_tags=["filter:example"],
role_name="<AWS_ROLE_NAME>",
account_specific_namespace_rules={'namespace1': True/False, 'namespace2': True/False},
excluded_regions=["us-east-1", "us-west-1"]
)
Instructions
First install the library and its dependencies and then save the example to example.py and run following commands:
DD_SITE="datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python "example.py"DD_SITE="us3.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python "example.py"DD_SITE="us5.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python "example.py"DD_SITE="datadoghq.eu" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python "example.py"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python "example.py"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python "example.py"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python "example.py"DD_SITE="ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python "example.py"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python "example.py"require 'rubygems'
require 'dogapi'
api_key = '<DATADOG_API_KEY>'
app_key = '<DATADOG_APPLICATION_KEY>'
dog = Dogapi::Client.new(api_key, app_key)
config = {
"account_id": "<AWS_ACCOUNT_ID>",
"filter_tags": ["<KEY>:<VALUE>"],
"host_tags": ["<KEY>:<VALUE>"],
"role_name": "DatadogAWSIntegrationRole",
"account_specific_namespace_rules": {"auto_scaling": false, "opsworks": false},
"excluded_regions": ["us-east-1", "us-west-1"]
}
dog.aws_integration_create(config)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"DD_SITE="datadoghq.eu" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"DD_SITE="ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"