pub struct AWSIntegrationAPI { /* private fields */ }
Expand description
Configure your Datadog-AWS integration directly through the Datadog API. For more information, see the AWS integration page.
Implementations§
Source§impl AWSIntegrationAPI
impl AWSIntegrationAPI
pub fn new() -> Self
Sourcepub fn with_config(config: Configuration) -> Self
pub fn with_config(config: Configuration) -> Self
Examples found in repository?
More examples
7async fn main() {
8 let mut configuration = datadog::Configuration::new();
9 configuration.set_unstable_operation_enabled("v2.ListAWSAccounts", true);
10 let api = AWSIntegrationAPI::with_config(configuration);
11 let resp = api
12 .list_aws_accounts(ListAWSAccountsOptionalParams::default())
13 .await;
14 if let Ok(value) = resp {
15 println!("{:#?}", value);
16 } else {
17 println!("{:#?}", resp.unwrap_err());
18 }
19}
pub fn with_client_and_config( config: Configuration, client: ClientWithMiddleware, ) -> Self
Sourcepub async fn create_aws_account(
&self,
body: AWSAccountCreateRequest,
) -> Result<AWSAccountResponse, Error<CreateAWSAccountError>>
pub async fn create_aws_account( &self, body: AWSAccountCreateRequest, ) -> Result<AWSAccountResponse, Error<CreateAWSAccountError>>
Create a new AWS Account Integration Config.
Examples found in repository?
21async fn main() {
22 let body = AWSAccountCreateRequest::new(AWSAccountCreateRequestData::new(
23 AWSAccountCreateRequestAttributes::new(
24 AWSAuthConfig::AWSAuthConfigRole(Box::new(AWSAuthConfigRole::new(
25 "DatadogIntegrationRole".to_string(),
26 ))),
27 "123456789012".to_string(),
28 AWSAccountPartition::AWS,
29 )
30 .account_tags(Some(vec!["key:value".to_string()]))
31 .logs_config(
32 AWSLogsConfig::new().lambda_forwarder(
33 AWSLambdaForwarderConfig::new()
34 .lambdas(vec![
35 "arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
36 .to_string(),
37 ])
38 .log_source_config(AWSLambdaForwarderConfigLogSourceConfig::new().tag_filters(
39 vec![
40 AWSLogSourceTagFilter::new()
41 .source("s3".to_string())
42 .tags(Some(vec!["test:test".to_string()]))
43 ],
44 ))
45 .sources(vec!["s3".to_string()]),
46 ),
47 )
48 .metrics_config(
49 AWSMetricsConfig::new()
50 .automute_enabled(true)
51 .collect_cloudwatch_alarms(true)
52 .collect_custom_metrics(true)
53 .enabled(true)
54 .tag_filters(vec![AWSNamespaceTagFilter::new()
55 .namespace("AWS/EC2".to_string())
56 .tags(Some(vec!["key:value".to_string()]))]),
57 )
58 .resources_config(
59 AWSResourcesConfig::new()
60 .cloud_security_posture_management_collection(false)
61 .extended_collection(false),
62 )
63 .traces_config(AWSTracesConfig::new()),
64 AWSAccountType::ACCOUNT,
65 ));
66 let mut configuration = datadog::Configuration::new();
67 configuration.set_unstable_operation_enabled("v2.CreateAWSAccount", true);
68 let api = AWSIntegrationAPI::with_config(configuration);
69 let resp = api.create_aws_account(body).await;
70 if let Ok(value) = resp {
71 println!("{:#?}", value);
72 } else {
73 println!("{:#?}", resp.unwrap_err());
74 }
75}
More examples
21async fn main() {
22 let body = AWSAccountCreateRequest::new(AWSAccountCreateRequestData::new(
23 AWSAccountCreateRequestAttributes::new(
24 AWSAuthConfig::AWSAuthConfigKeys(Box::new(
25 AWSAuthConfigKeys::new("AKIAIOSFODNN7EXAMPLE".to_string())
26 .secret_access_key("wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY".to_string()),
27 )),
28 "123456789012".to_string(),
29 AWSAccountPartition::AWS,
30 )
31 .account_tags(Some(vec!["key:value".to_string()]))
32 .logs_config(
33 AWSLogsConfig::new().lambda_forwarder(
34 AWSLambdaForwarderConfig::new()
35 .lambdas(vec![
36 "arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
37 .to_string(),
38 ])
39 .log_source_config(AWSLambdaForwarderConfigLogSourceConfig::new().tag_filters(
40 vec![
41 AWSLogSourceTagFilter::new()
42 .source("s3".to_string())
43 .tags(Some(vec!["test:test".to_string()]))
44 ],
45 ))
46 .sources(vec!["s3".to_string()]),
47 ),
48 )
49 .metrics_config(
50 AWSMetricsConfig::new()
51 .automute_enabled(true)
52 .collect_cloudwatch_alarms(true)
53 .collect_custom_metrics(true)
54 .enabled(true)
55 .tag_filters(vec![AWSNamespaceTagFilter::new()
56 .namespace("AWS/EC2".to_string())
57 .tags(Some(vec!["key:value".to_string()]))]),
58 )
59 .resources_config(
60 AWSResourcesConfig::new()
61 .cloud_security_posture_management_collection(false)
62 .extended_collection(false),
63 )
64 .traces_config(AWSTracesConfig::new()),
65 AWSAccountType::ACCOUNT,
66 ));
67 let mut configuration = datadog::Configuration::new();
68 configuration.set_unstable_operation_enabled("v2.CreateAWSAccount", true);
69 let api = AWSIntegrationAPI::with_config(configuration);
70 let resp = api.create_aws_account(body).await;
71 if let Ok(value) = resp {
72 println!("{:#?}", value);
73 } else {
74 println!("{:#?}", resp.unwrap_err());
75 }
76}
Sourcepub async fn create_aws_account_with_http_info(
&self,
body: AWSAccountCreateRequest,
) -> Result<ResponseContent<AWSAccountResponse>, Error<CreateAWSAccountError>>
pub async fn create_aws_account_with_http_info( &self, body: AWSAccountCreateRequest, ) -> Result<ResponseContent<AWSAccountResponse>, Error<CreateAWSAccountError>>
Create a new AWS Account Integration Config.
Sourcepub async fn create_new_aws_external_id(
&self,
) -> Result<AWSNewExternalIDResponse, Error<CreateNewAWSExternalIDError>>
pub async fn create_new_aws_external_id( &self, ) -> Result<AWSNewExternalIDResponse, Error<CreateNewAWSExternalIDError>>
Generate a new external ID for AWS role-based authentication.
Examples found in repository?
More examples
Sourcepub async fn create_new_aws_external_id_with_http_info(
&self,
) -> Result<ResponseContent<AWSNewExternalIDResponse>, Error<CreateNewAWSExternalIDError>>
pub async fn create_new_aws_external_id_with_http_info( &self, ) -> Result<ResponseContent<AWSNewExternalIDResponse>, Error<CreateNewAWSExternalIDError>>
Generate a new external ID for AWS role-based authentication.
Sourcepub async fn delete_aws_account(
&self,
aws_account_config_id: String,
) -> Result<(), Error<DeleteAWSAccountError>>
pub async fn delete_aws_account( &self, aws_account_config_id: String, ) -> Result<(), Error<DeleteAWSAccountError>>
Delete an AWS Account Integration Config by config ID.
Examples found in repository?
6async fn main() {
7 // there is a valid "aws_account_v2" in the system
8 let aws_account_v2_data_id = std::env::var("AWS_ACCOUNT_V2_DATA_ID").unwrap();
9 let mut configuration = datadog::Configuration::new();
10 configuration.set_unstable_operation_enabled("v2.DeleteAWSAccount", true);
11 let api = AWSIntegrationAPI::with_config(configuration);
12 let resp = api.delete_aws_account(aws_account_v2_data_id.clone()).await;
13 if let Ok(value) = resp {
14 println!("{:#?}", value);
15 } else {
16 println!("{:#?}", resp.unwrap_err());
17 }
18}
Sourcepub async fn delete_aws_account_with_http_info(
&self,
aws_account_config_id: String,
) -> Result<ResponseContent<()>, Error<DeleteAWSAccountError>>
pub async fn delete_aws_account_with_http_info( &self, aws_account_config_id: String, ) -> Result<ResponseContent<()>, Error<DeleteAWSAccountError>>
Delete an AWS Account Integration Config by config ID.
Sourcepub async fn get_aws_account(
&self,
aws_account_config_id: String,
) -> Result<AWSAccountResponse, Error<GetAWSAccountError>>
pub async fn get_aws_account( &self, aws_account_config_id: String, ) -> Result<AWSAccountResponse, Error<GetAWSAccountError>>
Get an AWS Account Integration Config by config ID.
Examples found in repository?
6async fn main() {
7 // there is a valid "aws_account_v2" in the system
8 let aws_account_v2_data_id = std::env::var("AWS_ACCOUNT_V2_DATA_ID").unwrap();
9 let mut configuration = datadog::Configuration::new();
10 configuration.set_unstable_operation_enabled("v2.GetAWSAccount", true);
11 let api = AWSIntegrationAPI::with_config(configuration);
12 let resp = api.get_aws_account(aws_account_v2_data_id.clone()).await;
13 if let Ok(value) = resp {
14 println!("{:#?}", value);
15 } else {
16 println!("{:#?}", resp.unwrap_err());
17 }
18}
Sourcepub async fn get_aws_account_with_http_info(
&self,
aws_account_config_id: String,
) -> Result<ResponseContent<AWSAccountResponse>, Error<GetAWSAccountError>>
pub async fn get_aws_account_with_http_info( &self, aws_account_config_id: String, ) -> Result<ResponseContent<AWSAccountResponse>, Error<GetAWSAccountError>>
Get an AWS Account Integration Config by config ID.
Sourcepub async fn get_aws_integration_iam_permissions(
&self,
) -> Result<AWSIntegrationIamPermissionsResponse, Error<GetAWSIntegrationIAMPermissionsError>>
pub async fn get_aws_integration_iam_permissions( &self, ) -> Result<AWSIntegrationIamPermissionsResponse, Error<GetAWSIntegrationIAMPermissionsError>>
Get all AWS IAM permissions required for the AWS integration.
Sourcepub async fn get_aws_integration_iam_permissions_with_http_info(
&self,
) -> Result<ResponseContent<AWSIntegrationIamPermissionsResponse>, Error<GetAWSIntegrationIAMPermissionsError>>
pub async fn get_aws_integration_iam_permissions_with_http_info( &self, ) -> Result<ResponseContent<AWSIntegrationIamPermissionsResponse>, Error<GetAWSIntegrationIAMPermissionsError>>
Get all AWS IAM permissions required for the AWS integration.
Sourcepub async fn list_aws_accounts(
&self,
params: ListAWSAccountsOptionalParams,
) -> Result<AWSAccountsResponse, Error<ListAWSAccountsError>>
pub async fn list_aws_accounts( &self, params: ListAWSAccountsOptionalParams, ) -> Result<AWSAccountsResponse, Error<ListAWSAccountsError>>
Get a list of AWS Account Integration Configs.
Examples found in repository?
7async fn main() {
8 let mut configuration = datadog::Configuration::new();
9 configuration.set_unstable_operation_enabled("v2.ListAWSAccounts", true);
10 let api = AWSIntegrationAPI::with_config(configuration);
11 let resp = api
12 .list_aws_accounts(ListAWSAccountsOptionalParams::default())
13 .await;
14 if let Ok(value) = resp {
15 println!("{:#?}", value);
16 } else {
17 println!("{:#?}", resp.unwrap_err());
18 }
19}
Sourcepub async fn list_aws_accounts_with_http_info(
&self,
params: ListAWSAccountsOptionalParams,
) -> Result<ResponseContent<AWSAccountsResponse>, Error<ListAWSAccountsError>>
pub async fn list_aws_accounts_with_http_info( &self, params: ListAWSAccountsOptionalParams, ) -> Result<ResponseContent<AWSAccountsResponse>, Error<ListAWSAccountsError>>
Get a list of AWS Account Integration Configs.
Sourcepub async fn list_aws_namespaces(
&self,
) -> Result<AWSNamespacesResponse, Error<ListAWSNamespacesError>>
pub async fn list_aws_namespaces( &self, ) -> Result<AWSNamespacesResponse, Error<ListAWSNamespacesError>>
Get a list of available AWS CloudWatch namespaces that can send metrics to Datadog.
Examples found in repository?
More examples
Sourcepub async fn list_aws_namespaces_with_http_info(
&self,
) -> Result<ResponseContent<AWSNamespacesResponse>, Error<ListAWSNamespacesError>>
pub async fn list_aws_namespaces_with_http_info( &self, ) -> Result<ResponseContent<AWSNamespacesResponse>, Error<ListAWSNamespacesError>>
Get a list of available AWS CloudWatch namespaces that can send metrics to Datadog.
Sourcepub async fn update_aws_account(
&self,
aws_account_config_id: String,
body: AWSAccountUpdateRequest,
) -> Result<AWSAccountResponse, Error<UpdateAWSAccountError>>
pub async fn update_aws_account( &self, aws_account_config_id: String, body: AWSAccountUpdateRequest, ) -> Result<AWSAccountResponse, Error<UpdateAWSAccountError>>
Update an AWS Account Integration Config by config ID.
Examples found in repository?
21async fn main() {
22 // there is a valid "aws_account_v2" in the system
23 let aws_account_v2_data_id = std::env::var("AWS_ACCOUNT_V2_DATA_ID").unwrap();
24 let body =
25 AWSAccountUpdateRequest::new(
26 AWSAccountUpdateRequestData::new(
27 AWSAccountUpdateRequestAttributes::new("123456789012".to_string())
28 .account_tags(Some(vec!["key:value".to_string()]))
29 .auth_config(
30 AWSAuthConfig::AWSAuthConfigRole(
31 Box::new(AWSAuthConfigRole::new("DatadogIntegrationRole".to_string())),
32 ),
33 )
34 .aws_partition(AWSAccountPartition::AWS)
35 .logs_config(
36 AWSLogsConfig
37 ::new().lambda_forwarder(
38 AWSLambdaForwarderConfig::new()
39 .lambdas(
40 vec![
41 "arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder".to_string()
42 ],
43 )
44 .log_source_config(
45 AWSLambdaForwarderConfigLogSourceConfig
46 ::new().tag_filters(
47 vec![
48 AWSLogSourceTagFilter::new()
49 .source("s3".to_string())
50 .tags(Some(vec!["test:test".to_string()]))
51 ],
52 ),
53 )
54 .sources(vec!["s3".to_string()]),
55 ),
56 )
57 .metrics_config(
58 AWSMetricsConfig::new()
59 .automute_enabled(true)
60 .collect_cloudwatch_alarms(true)
61 .collect_custom_metrics(true)
62 .enabled(true)
63 .tag_filters(
64 vec![
65 AWSNamespaceTagFilter::new()
66 .namespace("AWS/EC2".to_string())
67 .tags(Some(vec!["key:value".to_string()]))
68 ],
69 ),
70 )
71 .resources_config(
72 AWSResourcesConfig::new()
73 .cloud_security_posture_management_collection(false)
74 .extended_collection(false),
75 )
76 .traces_config(AWSTracesConfig::new()),
77 AWSAccountType::ACCOUNT,
78 ),
79 );
80 let mut configuration = datadog::Configuration::new();
81 configuration.set_unstable_operation_enabled("v2.UpdateAWSAccount", true);
82 let api = AWSIntegrationAPI::with_config(configuration);
83 let resp = api
84 .update_aws_account(aws_account_v2_data_id.clone(), body)
85 .await;
86 if let Ok(value) = resp {
87 println!("{:#?}", value);
88 } else {
89 println!("{:#?}", resp.unwrap_err());
90 }
91}
Sourcepub async fn update_aws_account_with_http_info(
&self,
aws_account_config_id: String,
body: AWSAccountUpdateRequest,
) -> Result<ResponseContent<AWSAccountResponse>, Error<UpdateAWSAccountError>>
pub async fn update_aws_account_with_http_info( &self, aws_account_config_id: String, body: AWSAccountUpdateRequest, ) -> Result<ResponseContent<AWSAccountResponse>, Error<UpdateAWSAccountError>>
Update an AWS Account Integration Config by config ID.
Trait Implementations§
Source§impl Clone for AWSIntegrationAPI
impl Clone for AWSIntegrationAPI
Source§fn clone(&self) -> AWSIntegrationAPI
fn clone(&self) -> AWSIntegrationAPI
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more