Struct AWSIntegrationAPI

Source
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

Source

pub fn new() -> Self

Source

pub fn with_config(config: Configuration) -> Self

Examples found in repository?
examples/v2_aws-integration_GetAWSIntegrationIAMPermissions.rs (line 9)
7async fn main() {
8    let configuration = datadog::Configuration::new();
9    let api = AWSIntegrationAPI::with_config(configuration);
10    let resp = api.get_aws_integration_iam_permissions().await;
11    if let Ok(value) = resp {
12        println!("{:#?}", value);
13    } else {
14        println!("{:#?}", resp.unwrap_err());
15    }
16}
More examples
Hide additional examples
examples/v2_aws-integration_ListAWSNamespaces.rs (line 9)
6async fn main() {
7    let mut configuration = datadog::Configuration::new();
8    configuration.set_unstable_operation_enabled("v2.ListAWSNamespaces", true);
9    let api = AWSIntegrationAPI::with_config(configuration);
10    let resp = api.list_aws_namespaces().await;
11    if let Ok(value) = resp {
12        println!("{:#?}", value);
13    } else {
14        println!("{:#?}", resp.unwrap_err());
15    }
16}
examples/v2_aws-integration_ListAWSNamespaces_3031307873.rs (line 9)
6async fn main() {
7    let mut configuration = datadog::Configuration::new();
8    configuration.set_unstable_operation_enabled("v2.ListAWSNamespaces", true);
9    let api = AWSIntegrationAPI::with_config(configuration);
10    let resp = api.list_aws_namespaces().await;
11    if let Ok(value) = resp {
12        println!("{:#?}", value);
13    } else {
14        println!("{:#?}", resp.unwrap_err());
15    }
16}
examples/v2_aws-integration_CreateNewAWSExternalID.rs (line 9)
6async fn main() {
7    let mut configuration = datadog::Configuration::new();
8    configuration.set_unstable_operation_enabled("v2.CreateNewAWSExternalID", true);
9    let api = AWSIntegrationAPI::with_config(configuration);
10    let resp = api.create_new_aws_external_id().await;
11    if let Ok(value) = resp {
12        println!("{:#?}", value);
13    } else {
14        println!("{:#?}", resp.unwrap_err());
15    }
16}
examples/v2_aws-integration_CreateNewAWSExternalID_364713854.rs (line 9)
6async fn main() {
7    let mut configuration = datadog::Configuration::new();
8    configuration.set_unstable_operation_enabled("v2.CreateNewAWSExternalID", true);
9    let api = AWSIntegrationAPI::with_config(configuration);
10    let resp = api.create_new_aws_external_id().await;
11    if let Ok(value) = resp {
12        println!("{:#?}", value);
13    } else {
14        println!("{:#?}", resp.unwrap_err());
15    }
16}
examples/v2_aws-integration_ListAWSAccounts.rs (line 10)
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}
Source

pub fn with_client_and_config( config: Configuration, client: ClientWithMiddleware, ) -> Self

Source

pub async fn create_aws_account( &self, body: AWSAccountCreateRequest, ) -> Result<AWSAccountResponse, Error<CreateAWSAccountError>>

Create a new AWS Account Integration Config.

Examples found in repository?
examples/v2_aws-integration_CreateAWSAccount_1716720881.rs (line 69)
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
Hide additional examples
examples/v2_aws-integration_CreateAWSAccount.rs (line 70)
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}
Source

pub async fn create_aws_account_with_http_info( &self, body: AWSAccountCreateRequest, ) -> Result<ResponseContent<AWSAccountResponse>, Error<CreateAWSAccountError>>

Create a new AWS Account Integration Config.

Source

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?
examples/v2_aws-integration_CreateNewAWSExternalID.rs (line 10)
6async fn main() {
7    let mut configuration = datadog::Configuration::new();
8    configuration.set_unstable_operation_enabled("v2.CreateNewAWSExternalID", true);
9    let api = AWSIntegrationAPI::with_config(configuration);
10    let resp = api.create_new_aws_external_id().await;
11    if let Ok(value) = resp {
12        println!("{:#?}", value);
13    } else {
14        println!("{:#?}", resp.unwrap_err());
15    }
16}
More examples
Hide additional examples
examples/v2_aws-integration_CreateNewAWSExternalID_364713854.rs (line 10)
6async fn main() {
7    let mut configuration = datadog::Configuration::new();
8    configuration.set_unstable_operation_enabled("v2.CreateNewAWSExternalID", true);
9    let api = AWSIntegrationAPI::with_config(configuration);
10    let resp = api.create_new_aws_external_id().await;
11    if let Ok(value) = resp {
12        println!("{:#?}", value);
13    } else {
14        println!("{:#?}", resp.unwrap_err());
15    }
16}
Source

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.

Source

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?
examples/v2_aws-integration_DeleteAWSAccount.rs (line 12)
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}
Source

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.

Source

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?
examples/v2_aws-integration_GetAWSAccount.rs (line 12)
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}
Source

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.

Source

pub async fn get_aws_integration_iam_permissions( &self, ) -> Result<AWSIntegrationIamPermissionsResponse, Error<GetAWSIntegrationIAMPermissionsError>>

Get all AWS IAM permissions required for the AWS integration.

Examples found in repository?
examples/v2_aws-integration_GetAWSIntegrationIAMPermissions.rs (line 10)
7async fn main() {
8    let configuration = datadog::Configuration::new();
9    let api = AWSIntegrationAPI::with_config(configuration);
10    let resp = api.get_aws_integration_iam_permissions().await;
11    if let Ok(value) = resp {
12        println!("{:#?}", value);
13    } else {
14        println!("{:#?}", resp.unwrap_err());
15    }
16}
Source

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.

Source

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?
examples/v2_aws-integration_ListAWSAccounts.rs (line 12)
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}
Source

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.

Source

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?
examples/v2_aws-integration_ListAWSNamespaces.rs (line 10)
6async fn main() {
7    let mut configuration = datadog::Configuration::new();
8    configuration.set_unstable_operation_enabled("v2.ListAWSNamespaces", true);
9    let api = AWSIntegrationAPI::with_config(configuration);
10    let resp = api.list_aws_namespaces().await;
11    if let Ok(value) = resp {
12        println!("{:#?}", value);
13    } else {
14        println!("{:#?}", resp.unwrap_err());
15    }
16}
More examples
Hide additional examples
examples/v2_aws-integration_ListAWSNamespaces_3031307873.rs (line 10)
6async fn main() {
7    let mut configuration = datadog::Configuration::new();
8    configuration.set_unstable_operation_enabled("v2.ListAWSNamespaces", true);
9    let api = AWSIntegrationAPI::with_config(configuration);
10    let resp = api.list_aws_namespaces().await;
11    if let Ok(value) = resp {
12        println!("{:#?}", value);
13    } else {
14        println!("{:#?}", resp.unwrap_err());
15    }
16}
Source

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.

Source

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?
examples/v2_aws-integration_UpdateAWSAccount.rs (line 84)
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}
Source

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

Source§

fn clone(&self) -> AWSIntegrationAPI

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AWSIntegrationAPI

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AWSIntegrationAPI

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,