v2_aws_integration_CreateAWSAccount/
v2_aws-integration_CreateAWSAccount.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_aws_integration::AWSIntegrationAPI;
4use datadog_api_client::datadogV2::model::AWSAccountCreateRequest;
5use datadog_api_client::datadogV2::model::AWSAccountCreateRequestAttributes;
6use datadog_api_client::datadogV2::model::AWSAccountCreateRequestData;
7use datadog_api_client::datadogV2::model::AWSAccountPartition;
8use datadog_api_client::datadogV2::model::AWSAccountType;
9use datadog_api_client::datadogV2::model::AWSAuthConfig;
10use datadog_api_client::datadogV2::model::AWSAuthConfigKeys;
11use datadog_api_client::datadogV2::model::AWSLambdaForwarderConfig;
12use datadog_api_client::datadogV2::model::AWSLogsConfig;
13use datadog_api_client::datadogV2::model::AWSMetricsConfig;
14use datadog_api_client::datadogV2::model::AWSNamespaceTagFilter;
15use datadog_api_client::datadogV2::model::AWSResourcesConfig;
16use datadog_api_client::datadogV2::model::AWSTracesConfig;
17
18#[tokio::main]
19async fn main() {
20 let body = AWSAccountCreateRequest::new(AWSAccountCreateRequestData::new(
21 AWSAccountCreateRequestAttributes::new(
22 AWSAuthConfig::AWSAuthConfigKeys(Box::new(
23 AWSAuthConfigKeys::new("AKIAIOSFODNN7EXAMPLE".to_string())
24 .secret_access_key("wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY".to_string()),
25 )),
26 "123456789012".to_string(),
27 AWSAccountPartition::AWS,
28 )
29 .account_tags(Some(vec!["key:value".to_string()]))
30 .logs_config(
31 AWSLogsConfig::new().lambda_forwarder(
32 AWSLambdaForwarderConfig::new()
33 .lambdas(vec![
34 "arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
35 .to_string(),
36 ])
37 .sources(vec!["s3".to_string()]),
38 ),
39 )
40 .metrics_config(
41 AWSMetricsConfig::new()
42 .automute_enabled(true)
43 .collect_cloudwatch_alarms(true)
44 .collect_custom_metrics(true)
45 .enabled(true)
46 .tag_filters(vec![AWSNamespaceTagFilter::new()
47 .namespace("AWS/EC2".to_string())
48 .tags(Some(vec!["key:value".to_string()]))]),
49 )
50 .resources_config(
51 AWSResourcesConfig::new()
52 .cloud_security_posture_management_collection(false)
53 .extended_collection(false),
54 )
55 .traces_config(AWSTracesConfig::new()),
56 AWSAccountType::ACCOUNT,
57 ));
58 let mut configuration = datadog::Configuration::new();
59 configuration.set_unstable_operation_enabled("v2.CreateAWSAccount", true);
60 let api = AWSIntegrationAPI::with_config(configuration);
61 let resp = api.create_aws_account(body).await;
62 if let Ok(value) = resp {
63 println!("{:#?}", value);
64 } else {
65 println!("{:#?}", resp.unwrap_err());
66 }
67}