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?
19async fn main() {
20 let body = AWSAccountCreateRequest::new(AWSAccountCreateRequestData::new(
21 AWSAccountCreateRequestAttributes::new(
22 AWSAuthConfig::AWSAuthConfigRole(Box::new(AWSAuthConfigRole::new(
23 "DatadogIntegrationRole".to_string(),
24 ))),
25 "123456789012".to_string(),
26 AWSAccountPartition::AWS,
27 )
28 .account_tags(Some(vec!["key:value".to_string()]))
29 .logs_config(
30 AWSLogsConfig::new().lambda_forwarder(
31 AWSLambdaForwarderConfig::new()
32 .lambdas(vec![
33 "arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"
34 .to_string(),
35 ])
36 .sources(vec!["s3".to_string()]),
37 ),
38 )
39 .metrics_config(
40 AWSMetricsConfig::new()
41 .automute_enabled(true)
42 .collect_cloudwatch_alarms(true)
43 .collect_custom_metrics(true)
44 .enabled(true)
45 .tag_filters(vec![AWSNamespaceTagFilter::new()
46 .namespace("AWS/EC2".to_string())
47 .tags(Some(vec!["key:value".to_string()]))]),
48 )
49 .resources_config(
50 AWSResourcesConfig::new()
51 .cloud_security_posture_management_collection(false)
52 .extended_collection(false),
53 )
54 .traces_config(AWSTracesConfig::new()),
55 AWSAccountType::ACCOUNT,
56 ));
57 let mut configuration = datadog::Configuration::new();
58 configuration.set_unstable_operation_enabled("v2.CreateAWSAccount", true);
59 let api = AWSIntegrationAPI::with_config(configuration);
60 let resp = api.create_aws_account(body).await;
61 if let Ok(value) = resp {
62 println!("{:#?}", value);
63 } else {
64 println!("{:#?}", resp.unwrap_err());
65 }
66}
More examples
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}
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?
19async fn main() {
20 // there is a valid "aws_account_v2" in the system
21 let aws_account_v2_data_id = std::env::var("AWS_ACCOUNT_V2_DATA_ID").unwrap();
22 let body =
23 AWSAccountUpdateRequest::new(
24 AWSAccountUpdateRequestData::new(
25 AWSAccountUpdateRequestAttributes::new("123456789012".to_string())
26 .account_tags(Some(vec!["key:value".to_string()]))
27 .auth_config(
28 AWSAuthConfig::AWSAuthConfigRole(
29 Box::new(AWSAuthConfigRole::new("DatadogIntegrationRole".to_string())),
30 ),
31 )
32 .aws_partition(AWSAccountPartition::AWS)
33 .logs_config(
34 AWSLogsConfig
35 ::new().lambda_forwarder(
36 AWSLambdaForwarderConfig::new()
37 .lambdas(
38 vec![
39 "arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder".to_string()
40 ],
41 )
42 .sources(vec!["s3".to_string()]),
43 ),
44 )
45 .metrics_config(
46 AWSMetricsConfig::new()
47 .automute_enabled(true)
48 .collect_cloudwatch_alarms(true)
49 .collect_custom_metrics(true)
50 .enabled(true)
51 .tag_filters(
52 vec![
53 AWSNamespaceTagFilter::new()
54 .namespace("AWS/EC2".to_string())
55 .tags(Some(vec!["key:value".to_string()]))
56 ],
57 ),
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 );
68 let mut configuration = datadog::Configuration::new();
69 configuration.set_unstable_operation_enabled("v2.UpdateAWSAccount", true);
70 let api = AWSIntegrationAPI::with_config(configuration);
71 let resp = api
72 .update_aws_account(aws_account_v2_data_id.clone(), body)
73 .await;
74 if let Ok(value) = resp {
75 println!("{:#?}", value);
76 } else {
77 println!("{:#?}", resp.unwrap_err());
78 }
79}
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