diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 52c13bf6e581..380a344138b6 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -1485,8 +1485,6 @@ components: $ref: '#/components/schemas/AWSAccountPartition' aws_regions: $ref: '#/components/schemas/AWSRegions' - ccm_config: - $ref: '#/components/schemas/AWSCCMConfig' logs_config: $ref: '#/components/schemas/AWSLogsConfig' metrics_config: @@ -1552,8 +1550,6 @@ components: $ref: '#/components/schemas/AWSAccountPartition' aws_regions: $ref: '#/components/schemas/AWSRegions' - ccm_config: - $ref: '#/components/schemas/AWSCCMConfig' created_at: description: Timestamp of when the account integration was created. format: date-time @@ -1627,8 +1623,6 @@ components: $ref: '#/components/schemas/AWSAccountPartition' aws_regions: $ref: '#/components/schemas/AWSRegions' - ccm_config: - $ref: '#/components/schemas/AWSCCMConfig' logs_config: $ref: '#/components/schemas/AWSLogsConfig' metrics_config: @@ -1760,15 +1754,6 @@ components: required: - role_name type: object - AWSCCMConfig: - description: AWS Cloud Cost Management config. - properties: - data_export_configs: - description: List of data export configurations for Cost and Usage Reports. - items: - $ref: '#/components/schemas/DataExportConfig' - type: array - type: object AWSCredentials: description: The definition of `AWSCredentials` object. oneOf: @@ -16814,30 +16799,6 @@ components: example: canceled type: string type: object - DataExportConfig: - description: AWS Cost and Usage Report data export configuration. - properties: - bucket_name: - description: Name of the S3 bucket where the Cost and Usage Report is stored. - example: billing - type: string - bucket_region: - description: AWS region of the S3 bucket. - example: us-east-1 - type: string - report_name: - description: Name of the Cost and Usage Report. - example: cost-and-usage-report - type: string - report_prefix: - description: S3 prefix where the Cost and Usage Report is stored. - example: reports - type: string - report_type: - description: Type of the Cost and Usage Report. - example: CUR2.0 - type: string - type: object DataRelationshipsTeams: description: Associates teams with this schedule in a data structure. properties: diff --git a/cassettes/features/v2/aws_integration/Create-an-AWS-account-returns-AWS-Account-object-response.frozen b/cassettes/features/v2/aws_integration/Create-an-AWS-account-returns-AWS-Account-object-response.frozen index 403f0e6375d3..b63a9ddbfcf2 100644 --- a/cassettes/features/v2/aws_integration/Create-an-AWS-account-returns-AWS-Account-object-response.frozen +++ b/cassettes/features/v2/aws_integration/Create-an-AWS-account-returns-AWS-Account-object-response.frozen @@ -1 +1 @@ -2025-12-10T17:32:09.613Z \ No newline at end of file +2025-08-06T17:41:40.185Z \ No newline at end of file diff --git a/cassettes/features/v2/aws_integration/Create-an-AWS-account-returns-AWS-Account-object-response.yml b/cassettes/features/v2/aws_integration/Create-an-AWS-account-returns-AWS-Account-object-response.yml index 3ff2f726243e..7c4e90039aa8 100644 --- a/cassettes/features/v2/aws_integration/Create-an-AWS-account-returns-AWS-Account-object-response.yml +++ b/cassettes/features/v2/aws_integration/Create-an-AWS-account-returns-AWS-Account-object-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Wed, 10 Dec 2025 17:32:09 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:40 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole"},"aws_account_id":"123456789012","aws_partition":"aws","ccm_config":{"data_export_configs":[{"bucket_name":"my-bucket","bucket_region":"us-east-1","report_name":"my-report","report_prefix":"reports","report_type":"CUR2.0"}]},"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"}}' + string: '{"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"}}' headers: Accept: - application/json @@ -14,21 +14,21 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"de1a3b78-ed2e-4f50-9191-1879129d09ff","type":"account","attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole","external_id":"55d4a43935224fe09c096f96392f1ca1"},"aws_account_id":"123456789012","aws_partition":"aws","aws_regions":{"include_all":true},"ccm_config":{"data_export_configs":[{"report_name":"my-report","report_prefix":"reports","report_type":"CUR2.0","bucket_name":"my-bucket","bucket_region":"us-east-1"}]},"created_at":"2025-12-10T17:32:11.003276673Z","logs_config":{"lambda_forwarder":{"lambdas":["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"],"sources":["s3"],"log_source_config":{"tag_filters":[{"source":"s3","tags":["test:test"]}]}}},"metrics_config":{"enabled":true,"automute_enabled":true,"collect_custom_metrics":true,"collect_cloudwatch_alarms":true,"tag_filters":[{"namespace":"AWS/EC2","tags":["key:value"]}],"namespace_filters":{"exclude_only":["AWS/SQS","AWS/ElasticMapReduce","AWS/Usage"]}},"modified_at":"2025-12-10T17:32:11.003276673Z","resources_config":{"cloud_security_posture_management_collection":false,"extended_collection":false},"traces_config":{"xray_services":{"include_only":[]}}}}}' + string: '{"data":{"id":"4ee52a3f-d0e9-487b-bde9-cd1cbc0e4cb0","type":"account","attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole","external_id":"a4e4a6b4c2cf4638a58b1febc6b856e9"},"aws_account_id":"123456789012","aws_partition":"aws","aws_regions":{"include_all":true},"created_at":"2025-08-06T17:41:41.111886478Z","logs_config":{"lambda_forwarder":{"lambdas":["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"],"sources":["s3"],"log_source_config":{"tag_filters":[{"source":"s3","tags":["test:test"]}]}}},"metrics_config":{"enabled":true,"automute_enabled":true,"collect_custom_metrics":true,"collect_cloudwatch_alarms":true,"tag_filters":[{"namespace":"AWS/EC2","tags":["key:value"]}],"namespace_filters":{"exclude_only":["AWS/SQS","AWS/ElasticMapReduce"]}},"modified_at":"2025-08-06T17:41:41.111886478Z","resources_config":{"cloud_security_posture_management_collection":false,"extended_collection":false},"traces_config":{"xray_services":{"include_only":[]}}}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Wed, 10 Dec 2025 17:32:09 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:40 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/de1a3b78-ed2e-4f50-9191-1879129d09ff + uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/4ee52a3f-d0e9-487b-bde9-cd1cbc0e4cb0 response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-AWS-Account-object-response.frozen b/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-AWS-Account-object-response.frozen index dfc78df9ae07..d0e249e860ed 100644 --- a/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-AWS-Account-object-response.frozen +++ b/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-AWS-Account-object-response.frozen @@ -1 +1 @@ -2025-12-10T17:32:36.829Z \ No newline at end of file +2025-08-06T17:41:41.364Z \ No newline at end of file diff --git a/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-AWS-Account-object-response.yml b/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-AWS-Account-object-response.yml index 50a2c1480c55..f4b4a28d8648 100644 --- a/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-AWS-Account-object-response.yml +++ b/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-AWS-Account-object-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Wed, 10 Dec 2025 17:32:36 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:41 GMT request: body: encoding: UTF-8 - string: '{"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","ccm_config":{"data_export_configs":[{"bucket_name":"my-bucket","bucket_region":"us-east-1","report_name":"my-report","report_prefix":"reports","report_type":"CUR2.0"}]},"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"}}' + string: '{"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"}}' headers: Accept: - application/json @@ -14,21 +14,21 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"a7d72fb6-ec59-4eca-a905-805dd599d061","type":"account","attributes":{"account_tags":["key:value"],"auth_config":{"access_key_id":"AKIAIOSFODNN7EXAMPLE"},"aws_account_id":"123456789012","aws_partition":"aws","aws_regions":{"include_all":true},"ccm_config":{"data_export_configs":[{"report_name":"my-report","report_prefix":"reports","report_type":"CUR2.0","bucket_name":"my-bucket","bucket_region":"us-east-1"}]},"created_at":"2025-12-10T17:32:37.014514664Z","logs_config":{"lambda_forwarder":{"lambdas":["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"],"sources":["s3"],"log_source_config":{"tag_filters":[{"source":"s3","tags":["test:test"]}]}}},"metrics_config":{"enabled":true,"automute_enabled":true,"collect_custom_metrics":true,"collect_cloudwatch_alarms":true,"tag_filters":[{"namespace":"AWS/EC2","tags":["key:value"]}],"namespace_filters":{"exclude_only":["AWS/SQS","AWS/ElasticMapReduce","AWS/Usage"]}},"modified_at":"2025-12-10T17:32:37.014514664Z","resources_config":{"cloud_security_posture_management_collection":false,"extended_collection":false},"traces_config":{"xray_services":{"include_only":[]}}}}}' + string: '{"data":{"id":"c80e30d5-b3f9-45b1-85fc-bad652af206b","type":"account","attributes":{"account_tags":["key:value"],"auth_config":{"access_key_id":"AKIAIOSFODNN7EXAMPLE"},"aws_account_id":"123456789012","aws_partition":"aws","aws_regions":{"include_all":true},"created_at":"2025-08-06T17:41:41.445076718Z","logs_config":{"lambda_forwarder":{"lambdas":["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"],"sources":["s3"],"log_source_config":{"tag_filters":[{"source":"s3","tags":["test:test"]}]}}},"metrics_config":{"enabled":true,"automute_enabled":true,"collect_custom_metrics":true,"collect_cloudwatch_alarms":true,"tag_filters":[{"namespace":"AWS/EC2","tags":["key:value"]}],"namespace_filters":{"exclude_only":["AWS/SQS","AWS/ElasticMapReduce"]}},"modified_at":"2025-08-06T17:41:41.445076718Z","resources_config":{"cloud_security_posture_management_collection":false,"extended_collection":false},"traces_config":{"xray_services":{"include_only":[]}}}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Wed, 10 Dec 2025 17:32:36 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:41 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/a7d72fb6-ec59-4eca-a905-805dd599d061 + uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/c80e30d5-b3f9-45b1-85fc-bad652af206b response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-Bad-Request-response.frozen b/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-Bad-Request-response.frozen index 2800bbe0aa25..abfd935a03f5 100644 --- a/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2025-12-10T17:34:11.261Z \ No newline at end of file +2025-08-06T17:41:41.716Z \ No newline at end of file diff --git a/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-Bad-Request-response.yml b/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-Bad-Request-response.yml index eddba207c7c3..79e4b109dda9 100644 --- a/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/aws_integration/Create-an-AWS-integration-returns-Bad-Request-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Wed, 10 Dec 2025 17:34:11 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:41 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole"},"aws_account_id":"123456789012","aws_partition":"aws-invalid","ccm_config":{"data_export_configs":[{"bucket_name":"my-bucket","bucket_region":"us-east-1","report_name":"my-report","report_prefix":"reports","report_type":"CUR2.0"}]},"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"}}' + string: '{"data":{"attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole"},"aws_account_id":"123456789012","aws_partition":"aws-invalid","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"}}' headers: Accept: - application/json diff --git a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-AWS-Account-object-response.frozen b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-AWS-Account-object-response.frozen index 0acb432176a4..770d0364bdcb 100644 --- a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-AWS-Account-object-response.frozen +++ b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-AWS-Account-object-response.frozen @@ -1 +1 @@ -2025-12-10T17:40:36.176Z \ No newline at end of file +2025-08-06T17:41:51.622Z \ No newline at end of file diff --git a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-AWS-Account-object-response.yml b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-AWS-Account-object-response.yml index 2067e6a92d33..1b520902394f 100644 --- a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-AWS-Account-object-response.yml +++ b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-AWS-Account-object-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Wed, 10 Dec 2025 17:40:36 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:51 GMT request: body: encoding: UTF-8 @@ -14,43 +14,43 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"0c2238ef-3b8e-4d25-85df-b18f96ac7031","type":"account","attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole","external_id":"a297178885da4934acf9eca79f3e7892"},"aws_account_id":"123456789012","aws_partition":"aws","aws_regions":{"include_only":["us-east-1"]},"created_at":"2025-12-10T17:40:37.609564422Z","logs_config":{"lambda_forwarder":{"lambdas":["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"],"sources":["s3"],"log_source_config":{"tag_filters":[{"source":"s3","tags":["test:test"]}]}}},"metrics_config":{"enabled":true,"automute_enabled":true,"collect_custom_metrics":false,"collect_cloudwatch_alarms":false,"tag_filters":[{"namespace":"AWS/EC2","tags":["key:value"]}],"namespace_filters":{"include_only":["AWS/EC2"]}},"modified_at":"2025-12-10T17:40:37.609564422Z","resources_config":{"cloud_security_posture_management_collection":false,"extended_collection":false},"traces_config":{"xray_services":{"include_only":["AWS/AppSync"]}}}}}' + string: '{"data":{"id":"ab6528e3-5dab-4375-ae47-4ce93d1216e2","type":"account","attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole","external_id":"36416390710445e7be511e1622ee4149"},"aws_account_id":"123456789012","aws_partition":"aws","aws_regions":{"include_only":["us-east-1"]},"created_at":"2025-08-06T17:41:52.510132689Z","logs_config":{"lambda_forwarder":{"lambdas":["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"],"sources":["s3"],"log_source_config":{"tag_filters":[{"source":"s3","tags":["test:test"]}]}}},"metrics_config":{"enabled":true,"automute_enabled":true,"collect_custom_metrics":false,"collect_cloudwatch_alarms":false,"tag_filters":[{"namespace":"AWS/EC2","tags":["key:value"]}],"namespace_filters":{"include_only":["AWS/EC2"]}},"modified_at":"2025-08-06T17:41:52.510132689Z","resources_config":{"cloud_security_posture_management_collection":false,"extended_collection":false},"traces_config":{"xray_services":{"include_only":["AWS/AppSync"]}}}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Wed, 10 Dec 2025 17:40:36 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:51 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole"},"aws_account_id":"123456789012","aws_partition":"aws","ccm_config":{"data_export_configs":[{"bucket_name":"updated-bucket","bucket_region":"us-west-2","report_name":"updated-report","report_prefix":"cost-reports","report_type":"CUR2.0"}]},"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"}}' + string: '{"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"}}' headers: Accept: - application/json Content-Type: - application/json method: PATCH - uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/0c2238ef-3b8e-4d25-85df-b18f96ac7031 + uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/ab6528e3-5dab-4375-ae47-4ce93d1216e2 response: body: encoding: UTF-8 - string: '{"data":{"id":"0c2238ef-3b8e-4d25-85df-b18f96ac7031","type":"account","attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole","external_id":"a297178885da4934acf9eca79f3e7892"},"aws_account_id":"123456789012","aws_partition":"aws","aws_regions":{"include_only":["us-east-1"]},"ccm_config":{"data_export_configs":[{"report_name":"updated-report","report_prefix":"cost-reports","report_type":"CUR2.0","bucket_name":"updated-bucket","bucket_region":"us-west-2"}]},"created_at":"2025-12-10T17:40:37.609564Z","logs_config":{"lambda_forwarder":{"lambdas":["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"],"sources":["s3"],"log_source_config":{"tag_filters":[{"source":"s3","tags":["test:test"]}]}}},"metrics_config":{"enabled":true,"automute_enabled":true,"collect_custom_metrics":true,"collect_cloudwatch_alarms":true,"tag_filters":[{"namespace":"AWS/EC2","tags":["key:value"]}],"namespace_filters":{"include_only":["AWS/EC2"]}},"modified_at":"2025-12-10T17:40:37.867410688Z","resources_config":{"cloud_security_posture_management_collection":false,"extended_collection":false},"traces_config":{"xray_services":{"include_only":["AWS/AppSync"]}}}}}' + string: '{"data":{"id":"ab6528e3-5dab-4375-ae47-4ce93d1216e2","type":"account","attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole","external_id":"36416390710445e7be511e1622ee4149"},"aws_account_id":"123456789012","aws_partition":"aws","aws_regions":{"include_only":["us-east-1"]},"created_at":"2025-08-06T17:41:52.510132Z","logs_config":{"lambda_forwarder":{"lambdas":["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"],"sources":["s3"],"log_source_config":{"tag_filters":[{"source":"s3","tags":["test:test"]}]}}},"metrics_config":{"enabled":true,"automute_enabled":true,"collect_custom_metrics":true,"collect_cloudwatch_alarms":true,"tag_filters":[{"namespace":"AWS/EC2","tags":["key:value"]}],"namespace_filters":{"include_only":["AWS/EC2"]}},"modified_at":"2025-08-06T17:41:52.717094345Z","resources_config":{"cloud_security_posture_management_collection":false,"extended_collection":false},"traces_config":{"xray_services":{"include_only":["AWS/AppSync"]}}}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Wed, 10 Dec 2025 17:40:36 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:51 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/0c2238ef-3b8e-4d25-85df-b18f96ac7031 + uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/ab6528e3-5dab-4375-ae47-4ce93d1216e2 response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Bad-Request-response.frozen b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Bad-Request-response.frozen index e550a6022163..2ad05fcd48b3 100644 --- a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2025-12-10T17:42:50.556Z \ No newline at end of file +2025-08-06T17:41:53.059Z \ No newline at end of file diff --git a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Bad-Request-response.yml b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Bad-Request-response.yml index 0d6d19af9eae..83f8744f9292 100644 --- a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Wed, 10 Dec 2025 17:42:50 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:53 GMT request: body: encoding: UTF-8 @@ -14,45 +14,44 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"0c358c9f-84fd-4fe5-b0e9-722d787de213","type":"account","attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole","external_id":"84a9c55851ce4a01869c503e990d325b"},"aws_account_id":"123456789012","aws_partition":"aws","aws_regions":{"include_only":["us-east-1"]},"created_at":"2025-12-10T17:42:52.162655791Z","logs_config":{"lambda_forwarder":{"lambdas":["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"],"sources":["s3"],"log_source_config":{"tag_filters":[{"source":"s3","tags":["test:test"]}]}}},"metrics_config":{"enabled":true,"automute_enabled":true,"collect_custom_metrics":false,"collect_cloudwatch_alarms":false,"tag_filters":[{"namespace":"AWS/EC2","tags":["key:value"]}],"namespace_filters":{"include_only":["AWS/EC2"]}},"modified_at":"2025-12-10T17:42:52.162655791Z","resources_config":{"cloud_security_posture_management_collection":false,"extended_collection":false},"traces_config":{"xray_services":{"include_only":["AWS/AppSync"]}}}}}' + string: '{"data":{"id":"dff6d3ee-e90a-4df1-b0d7-6f4e1ed35acc","type":"account","attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole","external_id":"f3f5392d608c448ca4910d7adcefa849"},"aws_account_id":"123456789012","aws_partition":"aws","aws_regions":{"include_only":["us-east-1"]},"created_at":"2025-08-06T17:41:54.148895503Z","logs_config":{"lambda_forwarder":{"lambdas":["arn:aws:lambda:us-east-1:123456789012:function:DatadogLambdaLogForwarder"],"sources":["s3"],"log_source_config":{"tag_filters":[{"source":"s3","tags":["test:test"]}]}}},"metrics_config":{"enabled":true,"automute_enabled":true,"collect_custom_metrics":false,"collect_cloudwatch_alarms":false,"tag_filters":[{"namespace":"AWS/EC2","tags":["key:value"]}],"namespace_filters":{"include_only":["AWS/EC2"]}},"modified_at":"2025-08-06T17:41:54.148895503Z","resources_config":{"cloud_security_posture_management_collection":false,"extended_collection":false},"traces_config":{"xray_services":{"include_only":["AWS/AppSync"]}}}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Wed, 10 Dec 2025 17:42:50 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:53 GMT request: body: encoding: UTF-8 - string: '{"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","ccm_config":{"data_export_configs":[{"bucket_name":"invalid-bucket","bucket_region":"invalid-region","report_name":"invalid-report","report_prefix":"invalid","report_type":"CUR2.0"}]},"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"}}' + string: '{"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"}}' headers: Accept: - application/json Content-Type: - application/json method: PATCH - uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/0c358c9f-84fd-4fe5-b0e9-722d787de213 + uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/dff6d3ee-e90a-4df1-b0d7-6f4e1ed35acc response: body: encoding: UTF-8 - string: '{"errors":[{"status":"400","title":"Bad Request","detail":"invalid - value","meta":{"ccm_config.data_export_configs[CUR2.0].bucket_region":"invalid - bucket region: invalid-region"}}]}' + string: '{"errors":[{"title":"Generic Error","detail":"cannot switch between + role and key based auth"}]}' headers: Content-Type: - application/vnd.api+json status: code: 400 message: Bad Request -- recorded_at: Wed, 10 Dec 2025 17:42:50 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:53 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/0c358c9f-84fd-4fe5-b0e9-722d787de213 + uri: https://api.datadoghq.com/api/v2/integration/aws/accounts/dff6d3ee-e90a-4df1-b0d7-6f4e1ed35acc response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Not-Found-response.frozen b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Not-Found-response.frozen index 07ac47cd4ec8..8c2f55ecb19d 100644 --- a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Not-Found-response.frozen +++ b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Not-Found-response.frozen @@ -1 +1 @@ -2025-12-10T17:43:13.852Z \ No newline at end of file +2025-08-06T17:41:54.735Z \ No newline at end of file diff --git a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Not-Found-response.yml b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Not-Found-response.yml index 99d068bfe343..02e784a97c0b 100644 --- a/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Not-Found-response.yml +++ b/cassettes/features/v2/aws_integration/Update-an-AWS-integration-returns-Not-Found-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Wed, 10 Dec 2025 17:43:13 GMT +- recorded_at: Wed, 06 Aug 2025 17:41:54 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"account_tags":["key:value"],"auth_config":{"role_name":"DatadogIntegrationRole"},"aws_account_id":"123456789012","aws_partition":"aws","ccm_config":{"data_export_configs":[{"bucket_name":"notfound-bucket","bucket_region":"eu-west-1","report_name":"notfound-report","report_prefix":"notfound","report_type":"CUR2.0"}]},"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"}}' + string: '{"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"}}' headers: Accept: - application/json diff --git a/examples/v2/aws-integration/CreateAWSAccount.rb b/examples/v2/aws-integration/CreateAWSAccount.rb index d3fef8de4bbb..0c3d16d03a13 100644 --- a/examples/v2/aws-integration/CreateAWSAccount.rb +++ b/examples/v2/aws-integration/CreateAWSAccount.rb @@ -15,17 +15,6 @@ }), aws_account_id: "123456789012", aws_partition: DatadogAPIClient::V2::AWSAccountPartition::AWS, - ccm_config: DatadogAPIClient::V2::AWSCCMConfig.new({ - data_export_configs: [ - DatadogAPIClient::V2::DataExportConfig.new({ - bucket_name: "my-bucket", - bucket_region: "us-east-1", - report_name: "my-report", - report_prefix: "reports", - report_type: "CUR2.0", - }), - ], - }), logs_config: DatadogAPIClient::V2::AWSLogsConfig.new({ lambda_forwarder: DatadogAPIClient::V2::AWSLambdaForwarderConfig.new({ lambdas: [ diff --git a/examples/v2/aws-integration/CreateAWSAccount_1716720881.rb b/examples/v2/aws-integration/CreateAWSAccount_1716720881.rb index c885185ef605..5a4fa555447f 100644 --- a/examples/v2/aws-integration/CreateAWSAccount_1716720881.rb +++ b/examples/v2/aws-integration/CreateAWSAccount_1716720881.rb @@ -14,17 +14,6 @@ }), aws_account_id: "123456789012", aws_partition: DatadogAPIClient::V2::AWSAccountPartition::AWS, - ccm_config: DatadogAPIClient::V2::AWSCCMConfig.new({ - data_export_configs: [ - DatadogAPIClient::V2::DataExportConfig.new({ - bucket_name: "my-bucket", - bucket_region: "us-east-1", - report_name: "my-report", - report_prefix: "reports", - report_type: "CUR2.0", - }), - ], - }), logs_config: DatadogAPIClient::V2::AWSLogsConfig.new({ lambda_forwarder: DatadogAPIClient::V2::AWSLambdaForwarderConfig.new({ lambdas: [ diff --git a/examples/v2/aws-integration/UpdateAWSAccount.rb b/examples/v2/aws-integration/UpdateAWSAccount.rb index b0f95eb6af4b..1e7596a9e804 100644 --- a/examples/v2/aws-integration/UpdateAWSAccount.rb +++ b/examples/v2/aws-integration/UpdateAWSAccount.rb @@ -17,17 +17,6 @@ }), aws_account_id: "123456789012", aws_partition: DatadogAPIClient::V2::AWSAccountPartition::AWS, - ccm_config: DatadogAPIClient::V2::AWSCCMConfig.new({ - data_export_configs: [ - DatadogAPIClient::V2::DataExportConfig.new({ - bucket_name: "updated-bucket", - bucket_region: "us-west-2", - report_name: "updated-report", - report_prefix: "cost-reports", - report_type: "CUR2.0", - }), - ], - }), logs_config: DatadogAPIClient::V2::AWSLogsConfig.new({ lambda_forwarder: DatadogAPIClient::V2::AWSLambdaForwarderConfig.new({ lambdas: [ diff --git a/features/v2/aws_integration.feature b/features/v2/aws_integration.feature index 9e14d0824b3d..30ded64d73f1 100644 --- a/features/v2/aws_integration.feature +++ b/features/v2/aws_integration.feature @@ -12,21 +12,21 @@ Feature: AWS Integration @team:DataDog/aws-integrations Scenario: Create an AWS account returns "AWS Account object" response Given new "CreateAWSAccount" request - And body with value {"data": {"attributes": {"account_tags": ["key:value"], "auth_config": {"role_name": "DatadogIntegrationRole"}, "aws_account_id": "123456789012", "aws_partition": "aws", "ccm_config": {"data_export_configs": [{"bucket_name": "my-bucket", "bucket_region": "us-east-1", "report_name": "my-report", "report_prefix": "reports", "report_type": "CUR2.0"}]}, "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"}} + And body with value {"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"}} When the request is sent Then the response status is 200 AWS Account object @team:DataDog/aws-integrations Scenario: Create an AWS integration returns "AWS Account object" response Given new "CreateAWSAccount" request - And body with value {"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", "ccm_config": {"data_export_configs": [{"bucket_name": "my-bucket", "bucket_region": "us-east-1", "report_name": "my-report", "report_prefix": "reports", "report_type": "CUR2.0"}]}, "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"}} + And body with value {"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"}} When the request is sent Then the response status is 200 AWS Account object @team:DataDog/aws-integrations Scenario: Create an AWS integration returns "Bad Request" response Given new "CreateAWSAccount" request - And body with value {"data": {"attributes": {"account_tags": ["key:value"], "auth_config": {"role_name": "DatadogIntegrationRole"}, "aws_account_id": "123456789012", "aws_partition": "aws-invalid", "ccm_config": {"data_export_configs": [{"bucket_name": "my-bucket", "bucket_region": "us-east-1", "report_name": "my-report", "report_prefix": "reports", "report_type": "CUR2.0"}]}, "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"}} + And body with value {"data": {"attributes": {"account_tags": ["key:value"], "auth_config": {"role_name": "DatadogIntegrationRole"}, "aws_account_id": "123456789012", "aws_partition": "aws-invalid", "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"}} When the request is sent Then the response status is 400 Bad Request @@ -195,7 +195,7 @@ Feature: AWS Integration Given there is a valid "aws_account_v2" in the system And new "UpdateAWSAccount" request And request contains "aws_account_config_id" parameter from "aws_account_v2.data.id" - And body with value {"data": {"attributes": {"account_tags": ["key:value"], "auth_config": {"role_name": "DatadogIntegrationRole"}, "aws_account_id": "123456789012", "aws_partition": "aws", "ccm_config": {"data_export_configs": [{"bucket_name": "updated-bucket", "bucket_region": "us-west-2", "report_name": "updated-report", "report_prefix": "cost-reports", "report_type": "CUR2.0"}]}, "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"}} + And body with value {"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"}} When the request is sent Then the response status is 200 AWS Account object @@ -204,7 +204,7 @@ Feature: AWS Integration Given there is a valid "aws_account_v2" in the system And new "UpdateAWSAccount" request And request contains "aws_account_config_id" parameter from "aws_account_v2.data.id" - And body with value {"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", "ccm_config": {"data_export_configs": [{"bucket_name": "invalid-bucket", "bucket_region": "invalid-region", "report_name": "invalid-report", "report_prefix": "invalid", "report_type": "CUR2.0"}]}, "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"}} + And body with value {"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"}} When the request is sent Then the response status is 400 Bad Request @@ -212,6 +212,6 @@ Feature: AWS Integration Scenario: Update an AWS integration returns "Not Found" response Given new "UpdateAWSAccount" request And request contains "aws_account_config_id" parameter with value "448169a8-251c-4344-abee-1c4edef39f7a" - And body with value {"data": {"attributes": {"account_tags": ["key:value"], "auth_config": {"role_name": "DatadogIntegrationRole"}, "aws_account_id": "123456789012", "aws_partition": "aws", "ccm_config": {"data_export_configs": [{"bucket_name": "notfound-bucket", "bucket_region": "eu-west-1", "report_name": "notfound-report", "report_prefix": "notfound", "report_type": "CUR2.0"}]}, "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"}} + And body with value {"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"}} When the request is sent Then the response status is 404 Not Found diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index 345f1ec65e1a..163e609556aa 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -1204,7 +1204,6 @@ def overrides "v2.aws_auth_config" => "AWSAuthConfig", "v2.aws_auth_config_keys" => "AWSAuthConfigKeys", "v2.aws_auth_config_role" => "AWSAuthConfigRole", - "v2.awsccm_config" => "AWSCCMConfig", "v2.aws_credentials" => "AWSCredentials", "v2.aws_credentials_update" => "AWSCredentialsUpdate", "v2.aws_cur_config" => "AwsCURConfig", @@ -1907,7 +1906,6 @@ def overrides "v2.datadog_integration" => "DatadogIntegration", "v2.datadog_integration_type" => "DatadogIntegrationType", "v2.datadog_integration_update" => "DatadogIntegrationUpdate", - "v2.data_export_config" => "DataExportConfig", "v2.data_relationships_teams" => "DataRelationshipsTeams", "v2.data_relationships_teams_data_items" => "DataRelationshipsTeamsDataItems", "v2.data_relationships_teams_data_items_type" => "DataRelationshipsTeamsDataItemsType", diff --git a/lib/datadog_api_client/v2/models/aws_account_create_request_attributes.rb b/lib/datadog_api_client/v2/models/aws_account_create_request_attributes.rb index b2fe1d1797c9..d64c59594eeb 100644 --- a/lib/datadog_api_client/v2/models/aws_account_create_request_attributes.rb +++ b/lib/datadog_api_client/v2/models/aws_account_create_request_attributes.rb @@ -38,9 +38,6 @@ class AWSAccountCreateRequestAttributes # AWS Regions to collect data from. Defaults to `include_all`. attr_accessor :aws_regions - # AWS Cloud Cost Management config. - attr_accessor :ccm_config - # AWS Logs Collection config. attr_accessor :logs_config @@ -64,7 +61,6 @@ def self.attribute_map :'aws_account_id' => :'aws_account_id', :'aws_partition' => :'aws_partition', :'aws_regions' => :'aws_regions', - :'ccm_config' => :'ccm_config', :'logs_config' => :'logs_config', :'metrics_config' => :'metrics_config', :'resources_config' => :'resources_config', @@ -81,7 +77,6 @@ def self.openapi_types :'aws_account_id' => :'String', :'aws_partition' => :'AWSAccountPartition', :'aws_regions' => :'AWSRegions', - :'ccm_config' => :'AWSCCMConfig', :'logs_config' => :'AWSLogsConfig', :'metrics_config' => :'AWSMetricsConfig', :'resources_config' => :'AWSResourcesConfig', @@ -137,10 +132,6 @@ def initialize(attributes = {}) self.aws_regions = attributes[:'aws_regions'] end - if attributes.key?(:'ccm_config') - self.ccm_config = attributes[:'ccm_config'] - end - if attributes.key?(:'logs_config') self.logs_config = attributes[:'logs_config'] end @@ -229,7 +220,6 @@ def ==(o) aws_account_id == o.aws_account_id && aws_partition == o.aws_partition && aws_regions == o.aws_regions && - ccm_config == o.ccm_config && logs_config == o.logs_config && metrics_config == o.metrics_config && resources_config == o.resources_config && @@ -241,7 +231,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [account_tags, auth_config, aws_account_id, aws_partition, aws_regions, ccm_config, logs_config, metrics_config, resources_config, traces_config, additional_properties].hash + [account_tags, auth_config, aws_account_id, aws_partition, aws_regions, logs_config, metrics_config, resources_config, traces_config, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/aws_account_response_attributes.rb b/lib/datadog_api_client/v2/models/aws_account_response_attributes.rb index 149bcad2a506..9063205acd01 100644 --- a/lib/datadog_api_client/v2/models/aws_account_response_attributes.rb +++ b/lib/datadog_api_client/v2/models/aws_account_response_attributes.rb @@ -38,9 +38,6 @@ class AWSAccountResponseAttributes # AWS Regions to collect data from. Defaults to `include_all`. attr_accessor :aws_regions - # AWS Cloud Cost Management config. - attr_accessor :ccm_config - # Timestamp of when the account integration was created. attr_accessor :created_at @@ -70,7 +67,6 @@ def self.attribute_map :'aws_account_id' => :'aws_account_id', :'aws_partition' => :'aws_partition', :'aws_regions' => :'aws_regions', - :'ccm_config' => :'ccm_config', :'created_at' => :'created_at', :'logs_config' => :'logs_config', :'metrics_config' => :'metrics_config', @@ -89,7 +85,6 @@ def self.openapi_types :'aws_account_id' => :'String', :'aws_partition' => :'AWSAccountPartition', :'aws_regions' => :'AWSRegions', - :'ccm_config' => :'AWSCCMConfig', :'created_at' => :'Time', :'logs_config' => :'AWSLogsConfig', :'metrics_config' => :'AWSMetricsConfig', @@ -147,10 +142,6 @@ def initialize(attributes = {}) self.aws_regions = attributes[:'aws_regions'] end - if attributes.key?(:'ccm_config') - self.ccm_config = attributes[:'ccm_config'] - end - if attributes.key?(:'created_at') self.created_at = attributes[:'created_at'] end @@ -225,7 +216,6 @@ def ==(o) aws_account_id == o.aws_account_id && aws_partition == o.aws_partition && aws_regions == o.aws_regions && - ccm_config == o.ccm_config && created_at == o.created_at && logs_config == o.logs_config && metrics_config == o.metrics_config && @@ -239,7 +229,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [account_tags, auth_config, aws_account_id, aws_partition, aws_regions, ccm_config, created_at, logs_config, metrics_config, modified_at, resources_config, traces_config, additional_properties].hash + [account_tags, auth_config, aws_account_id, aws_partition, aws_regions, created_at, logs_config, metrics_config, modified_at, resources_config, traces_config, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/aws_account_update_request_attributes.rb b/lib/datadog_api_client/v2/models/aws_account_update_request_attributes.rb index 450ac815b5dd..efbdfdda1f8c 100644 --- a/lib/datadog_api_client/v2/models/aws_account_update_request_attributes.rb +++ b/lib/datadog_api_client/v2/models/aws_account_update_request_attributes.rb @@ -38,9 +38,6 @@ class AWSAccountUpdateRequestAttributes # AWS Regions to collect data from. Defaults to `include_all`. attr_accessor :aws_regions - # AWS Cloud Cost Management config. - attr_accessor :ccm_config - # AWS Logs Collection config. attr_accessor :logs_config @@ -64,7 +61,6 @@ def self.attribute_map :'aws_account_id' => :'aws_account_id', :'aws_partition' => :'aws_partition', :'aws_regions' => :'aws_regions', - :'ccm_config' => :'ccm_config', :'logs_config' => :'logs_config', :'metrics_config' => :'metrics_config', :'resources_config' => :'resources_config', @@ -81,7 +77,6 @@ def self.openapi_types :'aws_account_id' => :'String', :'aws_partition' => :'AWSAccountPartition', :'aws_regions' => :'AWSRegions', - :'ccm_config' => :'AWSCCMConfig', :'logs_config' => :'AWSLogsConfig', :'metrics_config' => :'AWSMetricsConfig', :'resources_config' => :'AWSResourcesConfig', @@ -137,10 +132,6 @@ def initialize(attributes = {}) self.aws_regions = attributes[:'aws_regions'] end - if attributes.key?(:'ccm_config') - self.ccm_config = attributes[:'ccm_config'] - end - if attributes.key?(:'logs_config') self.logs_config = attributes[:'logs_config'] end @@ -207,7 +198,6 @@ def ==(o) aws_account_id == o.aws_account_id && aws_partition == o.aws_partition && aws_regions == o.aws_regions && - ccm_config == o.ccm_config && logs_config == o.logs_config && metrics_config == o.metrics_config && resources_config == o.resources_config && @@ -219,7 +209,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [account_tags, auth_config, aws_account_id, aws_partition, aws_regions, ccm_config, logs_config, metrics_config, resources_config, traces_config, additional_properties].hash + [account_tags, auth_config, aws_account_id, aws_partition, aws_regions, logs_config, metrics_config, resources_config, traces_config, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/awsccm_config.rb b/lib/datadog_api_client/v2/models/awsccm_config.rb deleted file mode 100644 index e0827aa3fb1e..000000000000 --- a/lib/datadog_api_client/v2/models/awsccm_config.rb +++ /dev/null @@ -1,107 +0,0 @@ -=begin -#Datadog API V2 Collection - -#Collection of all Datadog Public endpoints. - -The version of the OpenAPI document: 1.0 -Contact: support@datadoghq.com -Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator - - Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. - This product includes software developed at Datadog (https://www.datadoghq.com/). - Copyright 2020-Present Datadog, Inc. - -=end - -require 'date' -require 'time' - -module DatadogAPIClient::V2 - # AWS Cloud Cost Management config. - class AWSCCMConfig - include BaseGenericModel - - # List of data export configurations for Cost and Usage Reports. - attr_accessor :data_export_configs - - attr_accessor :additional_properties - - # Attribute mapping from ruby-style variable name to JSON key. - # @!visibility private - def self.attribute_map - { - :'data_export_configs' => :'data_export_configs' - } - end - - # Attribute type mapping. - # @!visibility private - def self.openapi_types - { - :'data_export_configs' => :'Array' - } - end - - # Initializes the object - # @param attributes [Hash] Model attributes in the form of hash - # @!visibility private - def initialize(attributes = {}) - if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AWSCCMConfig` initialize method" - end - - self.additional_properties = {} - # check to see if the attribute exists and convert string to symbol for hash key - attributes = attributes.each_with_object({}) { |(k, v), h| - if (!self.class.attribute_map.key?(k.to_sym)) - self.additional_properties[k.to_sym] = v - else - h[k.to_sym] = v - end - } - - if attributes.key?(:'data_export_configs') - if (value = attributes[:'data_export_configs']).is_a?(Array) - self.data_export_configs = value - end - end - end - - # Returns the object in the form of hash, with additionalProperties support. - # @return [Hash] Returns the object in the form of hash - # @!visibility private - def to_hash - hash = {} - self.class.attribute_map.each_pair do |attr, param| - value = self.send(attr) - if value.nil? - is_nullable = self.class.openapi_nullable.include?(attr) - next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) - end - - hash[param] = _to_hash(value) - end - self.additional_properties.each_pair do |attr, value| - hash[attr] = value - end - hash - end - - # Checks equality by comparing each attribute. - # @param o [Object] Object to be compared - # @!visibility private - def ==(o) - return true if self.equal?(o) - self.class == o.class && - data_export_configs == o.data_export_configs && - additional_properties == o.additional_properties - end - - # Calculates hash code according to all attributes. - # @return [Integer] Hash code - # @!visibility private - def hash - [data_export_configs, additional_properties].hash - end - end -end diff --git a/lib/datadog_api_client/v2/models/data_export_config.rb b/lib/datadog_api_client/v2/models/data_export_config.rb deleted file mode 100644 index 3cfcda879275..000000000000 --- a/lib/datadog_api_client/v2/models/data_export_config.rb +++ /dev/null @@ -1,145 +0,0 @@ -=begin -#Datadog API V2 Collection - -#Collection of all Datadog Public endpoints. - -The version of the OpenAPI document: 1.0 -Contact: support@datadoghq.com -Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator - - Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. - This product includes software developed at Datadog (https://www.datadoghq.com/). - Copyright 2020-Present Datadog, Inc. - -=end - -require 'date' -require 'time' - -module DatadogAPIClient::V2 - # AWS Cost and Usage Report data export configuration. - class DataExportConfig - include BaseGenericModel - - # Name of the S3 bucket where the Cost and Usage Report is stored. - attr_accessor :bucket_name - - # AWS region of the S3 bucket. - attr_accessor :bucket_region - - # Name of the Cost and Usage Report. - attr_accessor :report_name - - # S3 prefix where the Cost and Usage Report is stored. - attr_accessor :report_prefix - - # Type of the Cost and Usage Report. - attr_accessor :report_type - - attr_accessor :additional_properties - - # Attribute mapping from ruby-style variable name to JSON key. - # @!visibility private - def self.attribute_map - { - :'bucket_name' => :'bucket_name', - :'bucket_region' => :'bucket_region', - :'report_name' => :'report_name', - :'report_prefix' => :'report_prefix', - :'report_type' => :'report_type' - } - end - - # Attribute type mapping. - # @!visibility private - def self.openapi_types - { - :'bucket_name' => :'String', - :'bucket_region' => :'String', - :'report_name' => :'String', - :'report_prefix' => :'String', - :'report_type' => :'String' - } - end - - # Initializes the object - # @param attributes [Hash] Model attributes in the form of hash - # @!visibility private - def initialize(attributes = {}) - if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::DataExportConfig` initialize method" - end - - self.additional_properties = {} - # check to see if the attribute exists and convert string to symbol for hash key - attributes = attributes.each_with_object({}) { |(k, v), h| - if (!self.class.attribute_map.key?(k.to_sym)) - self.additional_properties[k.to_sym] = v - else - h[k.to_sym] = v - end - } - - if attributes.key?(:'bucket_name') - self.bucket_name = attributes[:'bucket_name'] - end - - if attributes.key?(:'bucket_region') - self.bucket_region = attributes[:'bucket_region'] - end - - if attributes.key?(:'report_name') - self.report_name = attributes[:'report_name'] - end - - if attributes.key?(:'report_prefix') - self.report_prefix = attributes[:'report_prefix'] - end - - if attributes.key?(:'report_type') - self.report_type = attributes[:'report_type'] - end - end - - # Returns the object in the form of hash, with additionalProperties support. - # @return [Hash] Returns the object in the form of hash - # @!visibility private - def to_hash - hash = {} - self.class.attribute_map.each_pair do |attr, param| - value = self.send(attr) - if value.nil? - is_nullable = self.class.openapi_nullable.include?(attr) - next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) - end - - hash[param] = _to_hash(value) - end - self.additional_properties.each_pair do |attr, value| - hash[attr] = value - end - hash - end - - # Checks equality by comparing each attribute. - # @param o [Object] Object to be compared - # @!visibility private - def ==(o) - return true if self.equal?(o) - self.class == o.class && - bucket_name == o.bucket_name && - bucket_region == o.bucket_region && - report_name == o.report_name && - report_prefix == o.report_prefix && - report_type == o.report_type && - additional_properties == o.additional_properties - end - - # Calculates hash code according to all attributes. - # @return [Integer] Hash code - # @!visibility private - def hash - [bucket_name, bucket_region, report_name, report_prefix, report_type, additional_properties].hash - end - end -end