diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index db9d07fc0..f3d3ffaa5 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -59638,6 +59638,39 @@ paths: summary: Get AWS integration IAM permissions tags: - AWS Integration + /api/v2/integration/aws/iam_permissions/resource_collection: + get: + description: Get all resource collection AWS IAM permissions required for the + AWS integration. + operationId: GetAWSIntegrationIAMPermissionsResourceCollection + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AWSIntegrationIamPermissionsResponse' + description: AWS integration resource collection IAM permissions. + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get resource collection IAM permissions + tags: + - AWS Integration + /api/v2/integration/aws/iam_permissions/standard: + get: + description: Get all standard AWS IAM permissions required for the AWS integration. + operationId: GetAWSIntegrationIAMPermissionsStandard + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/AWSIntegrationIamPermissionsResponse' + description: AWS integration standard IAM permissions. + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get AWS integration standard IAM permissions + tags: + - AWS Integration /api/v2/integration/aws/logs/services: get: description: Get a list of AWS services that can send logs to Datadog. diff --git a/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsResourceCollection.rs b/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsResourceCollection.rs new file mode 100644 index 000000000..b45b339ce --- /dev/null +++ b/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsResourceCollection.rs @@ -0,0 +1,18 @@ +// Get resource collection IAM permissions returns "AWS integration resource +// collection IAM permissions." response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_aws_integration::AWSIntegrationAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = AWSIntegrationAPI::with_config(configuration); + let resp = api + .get_aws_integration_iam_permissions_resource_collection() + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsResourceCollection_1008672547.rs b/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsResourceCollection_1008672547.rs new file mode 100644 index 000000000..2c43b4d2d --- /dev/null +++ b/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsResourceCollection_1008672547.rs @@ -0,0 +1,18 @@ +// Get resource collection IAM permissions returns "AWS IAM Permissions object" +// response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_aws_integration::AWSIntegrationAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = AWSIntegrationAPI::with_config(configuration); + let resp = api + .get_aws_integration_iam_permissions_resource_collection() + .await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsStandard.rs b/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsStandard.rs new file mode 100644 index 000000000..fa6227ca8 --- /dev/null +++ b/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsStandard.rs @@ -0,0 +1,16 @@ +// Get AWS integration standard IAM permissions returns "AWS integration standard +// IAM permissions." response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_aws_integration::AWSIntegrationAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = AWSIntegrationAPI::with_config(configuration); + let resp = api.get_aws_integration_iam_permissions_standard().await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsStandard_3136299151.rs b/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsStandard_3136299151.rs new file mode 100644 index 000000000..257e4774d --- /dev/null +++ b/examples/v2_aws-integration_GetAWSIntegrationIAMPermissionsStandard_3136299151.rs @@ -0,0 +1,16 @@ +// Get AWS integration standard IAM permissions returns "AWS IAM Permissions +// object" response +use datadog_api_client::datadog; +use datadog_api_client::datadogV2::api_aws_integration::AWSIntegrationAPI; + +#[tokio::main] +async fn main() { + let configuration = datadog::Configuration::new(); + let api = AWSIntegrationAPI::with_config(configuration); + let resp = api.get_aws_integration_iam_permissions_standard().await; + if let Ok(value) = resp { + println!("{:#?}", value); + } else { + println!("{:#?}", resp.unwrap_err()); + } +} diff --git a/src/datadogV2/api/api_aws_integration.rs b/src/datadogV2/api/api_aws_integration.rs index b8862baad..8d5075ff7 100644 --- a/src/datadogV2/api/api_aws_integration.rs +++ b/src/datadogV2/api/api_aws_integration.rs @@ -66,6 +66,22 @@ pub enum GetAWSIntegrationIAMPermissionsError { UnknownValue(serde_json::Value), } +/// GetAWSIntegrationIAMPermissionsResourceCollectionError is a struct for typed errors of method [`AWSIntegrationAPI::get_aws_integration_iam_permissions_resource_collection`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum GetAWSIntegrationIAMPermissionsResourceCollectionError { + APIErrorResponse(crate::datadogV2::model::APIErrorResponse), + UnknownValue(serde_json::Value), +} + +/// GetAWSIntegrationIAMPermissionsStandardError is a struct for typed errors of method [`AWSIntegrationAPI::get_aws_integration_iam_permissions_standard`] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum GetAWSIntegrationIAMPermissionsStandardError { + APIErrorResponse(crate::datadogV2::model::APIErrorResponse), + UnknownValue(serde_json::Value), +} + /// ListAWSAccountsError is a struct for typed errors of method [`AWSIntegrationAPI::list_aws_accounts`] #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] @@ -725,6 +741,226 @@ impl AWSIntegrationAPI { } } + /// Get all resource collection AWS IAM permissions required for the AWS integration. + pub async fn get_aws_integration_iam_permissions_resource_collection( + &self, + ) -> Result< + crate::datadogV2::model::AWSIntegrationIamPermissionsResponse, + datadog::Error, + > { + match self + .get_aws_integration_iam_permissions_resource_collection_with_http_info() + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get all resource collection AWS IAM permissions required for the AWS integration. + pub async fn get_aws_integration_iam_permissions_resource_collection_with_http_info( + &self, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.get_aws_integration_iam_permissions_resource_collection"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/integration/aws/iam_permissions/resource_collection", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + log::debug!("request content: {:?}", local_req.body()); + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + log::debug!("response content: {}", local_content); + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::< + crate::datadogV2::model::AWSIntegrationIamPermissionsResponse, + >(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + + /// Get all standard AWS IAM permissions required for the AWS integration. + pub async fn get_aws_integration_iam_permissions_standard( + &self, + ) -> Result< + crate::datadogV2::model::AWSIntegrationIamPermissionsResponse, + datadog::Error, + > { + match self + .get_aws_integration_iam_permissions_standard_with_http_info() + .await + { + Ok(response_content) => { + if let Some(e) = response_content.entity { + Ok(e) + } else { + Err(datadog::Error::Serde(serde::de::Error::custom( + "response content was None", + ))) + } + } + Err(err) => Err(err), + } + } + + /// Get all standard AWS IAM permissions required for the AWS integration. + pub async fn get_aws_integration_iam_permissions_standard_with_http_info( + &self, + ) -> Result< + datadog::ResponseContent, + datadog::Error, + > { + let local_configuration = &self.config; + let operation_id = "v2.get_aws_integration_iam_permissions_standard"; + + let local_client = &self.client; + + let local_uri_str = format!( + "{}/api/v2/integration/aws/iam_permissions/standard", + local_configuration.get_operation_host(operation_id) + ); + let mut local_req_builder = + local_client.request(reqwest::Method::GET, local_uri_str.as_str()); + + // build headers + let mut headers = HeaderMap::new(); + headers.insert("Accept", HeaderValue::from_static("application/json")); + + // build user agent + match HeaderValue::from_str(local_configuration.user_agent.as_str()) { + Ok(user_agent) => headers.insert(reqwest::header::USER_AGENT, user_agent), + Err(e) => { + log::warn!("Failed to parse user agent header: {e}, falling back to default"); + headers.insert( + reqwest::header::USER_AGENT, + HeaderValue::from_static(datadog::DEFAULT_USER_AGENT.as_str()), + ) + } + }; + + // build auth + if let Some(local_key) = local_configuration.auth_keys.get("apiKeyAuth") { + headers.insert( + "DD-API-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-API-KEY header"), + ); + }; + if let Some(local_key) = local_configuration.auth_keys.get("appKeyAuth") { + headers.insert( + "DD-APPLICATION-KEY", + HeaderValue::from_str(local_key.key.as_str()) + .expect("failed to parse DD-APPLICATION-KEY header"), + ); + }; + + local_req_builder = local_req_builder.headers(headers); + let local_req = local_req_builder.build()?; + log::debug!("request content: {:?}", local_req.body()); + let local_resp = local_client.execute(local_req).await?; + + let local_status = local_resp.status(); + let local_content = local_resp.text().await?; + log::debug!("response content: {}", local_content); + + if !local_status.is_client_error() && !local_status.is_server_error() { + match serde_json::from_str::< + crate::datadogV2::model::AWSIntegrationIamPermissionsResponse, + >(&local_content) + { + Ok(e) => { + return Ok(datadog::ResponseContent { + status: local_status, + content: local_content, + entity: Some(e), + }) + } + Err(e) => return Err(datadog::Error::Serde(e)), + }; + } else { + let local_entity: Option = + serde_json::from_str(&local_content).ok(); + let local_error = datadog::ResponseContent { + status: local_status, + content: local_content, + entity: local_entity, + }; + Err(datadog::Error::ResponseError(local_error)) + } + } + /// Get a list of AWS Account Integration Configs. pub async fn list_aws_accounts( &self, diff --git a/tests/scenarios/cassettes/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.frozen b/tests/scenarios/cassettes/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.frozen new file mode 100644 index 000000000..ae96a74a0 --- /dev/null +++ b/tests/scenarios/cassettes/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.frozen @@ -0,0 +1 @@ +2025-09-17T18:27:22.560Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.json b/tests/scenarios/cassettes/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.json new file mode 100644 index 000000000..020f26ffd --- /dev/null +++ b/tests/scenarios/cassettes/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integration/aws/iam_permissions/standard" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"permissions\",\"type\":\"permissions\",\"attributes\":{\"permissions\":[\"account:GetAccountInformation\",\"airflow:GetEnvironment\",\"airflow:ListEnvironments\",\"apigateway:GET\",\"appsync:ListGraphqlApis\",\"autoscaling:Describe*\",\"backup:List*\",\"batch:DescribeJobDefinitions\",\"bcm-data-exports:GetExport\",\"bcm-data-exports:ListExports\",\"budgets:ViewBudget\",\"cloudfront:GetDistributionConfig\",\"cloudfront:ListDistributions\",\"cloudtrail:DescribeTrails\",\"cloudtrail:GetTrail\",\"cloudtrail:GetTrailStatus\",\"cloudtrail:ListTrails\",\"cloudtrail:LookupEvents\",\"cloudwatch:Describe*\",\"cloudwatch:Get*\",\"cloudwatch:List*\",\"codebuild:BatchGetProjects\",\"codebuild:ListProjects\",\"codedeploy:BatchGet*\",\"codedeploy:List*\",\"cur:DescribeReportDefinitions\",\"directconnect:Describe*\",\"dms:DescribeReplicationInstances\",\"dynamodb:Describe*\",\"dynamodb:List*\",\"ec2:Describe*\",\"ecs:Describe*\",\"ecs:List*\",\"eks:DescribeCluster\",\"eks:ListClusters\",\"elasticache:Describe*\",\"elasticache:List*\",\"elasticfilesystem:DescribeAccessPoints\",\"elasticfilesystem:DescribeFileSystems\",\"elasticfilesystem:DescribeTags\",\"elasticloadbalancing:Describe*\",\"elasticmapreduce:Describe*\",\"elasticmapreduce:List*\",\"es:DescribeElasticsearchDomains\",\"es:ListDomainNames\",\"es:ListTags\",\"events:CreateEventBus\",\"fsx:DescribeFileSystems\",\"fsx:ListTagsForResource\",\"health:DescribeAffectedEntities\",\"health:DescribeEventDetails\",\"health:DescribeEvents\",\"iam:ListAccountAliases\",\"kinesis:Describe*\",\"kinesis:List*\",\"lambda:List*\",\"logs:DeleteSubscriptionFilter\",\"logs:DescribeDeliveries\",\"logs:DescribeDeliverySources\",\"logs:DescribeLogGroups\",\"logs:DescribeLogStreams\",\"logs:DescribeSubscriptionFilters\",\"logs:FilterLogEvents\",\"logs:GetDeliveryDestination\",\"logs:PutSubscriptionFilter\",\"logs:TestMetricFilter\",\"network-firewall:DescribeLoggingConfiguration\",\"network-firewall:ListFirewalls\",\"oam:ListAttachedLinks\",\"oam:ListSinks\",\"organizations:Describe*\",\"organizations:List*\",\"rds:Describe*\",\"rds:List*\",\"redshift-serverless:ListNamespaces\",\"redshift:DescribeClusters\",\"redshift:DescribeLoggingStatus\",\"route53:List*\",\"route53resolver:ListResolverQueryLogConfigs\",\"s3:GetBucketLocation\",\"s3:GetBucketLogging\",\"s3:GetBucketNotification\",\"s3:GetBucketTagging\",\"s3:ListAllMyBuckets\",\"s3:PutBucketNotification\",\"ses:Get*\",\"ses:List*\",\"sns:GetSubscriptionAttributes\",\"sns:List*\",\"sns:Publish\",\"sqs:ListQueues\",\"ssm:GetServiceSetting\",\"ssm:ListCommands\",\"states:DescribeStateMachine\",\"states:ListStateMachines\",\"support:DescribeTrustedAdvisor*\",\"support:RefreshTrustedAdvisorCheck\",\"tag:GetResources\",\"tag:GetTagKeys\",\"tag:GetTagValues\",\"timestream:DescribeEndpoints\",\"wafv2:ListLoggingConfigurations\",\"xray:BatchGetTraces\",\"xray:GetTraceSummaries\"]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 17 Sep 2025 18:27:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.frozen b/tests/scenarios/cassettes/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.frozen new file mode 100644 index 000000000..127546bcf --- /dev/null +++ b/tests/scenarios/cassettes/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.frozen @@ -0,0 +1 @@ +2025-09-17T18:27:22.885Z \ No newline at end of file diff --git a/tests/scenarios/cassettes/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.json b/tests/scenarios/cassettes/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.json new file mode 100644 index 000000000..06994a2bd --- /dev/null +++ b/tests/scenarios/cassettes/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.json @@ -0,0 +1,33 @@ +{ + "http_interactions": [ + { + "request": { + "body": "", + "headers": { + "Accept": [ + "application/json" + ] + }, + "method": "get", + "uri": "https://api.datadoghq.com/api/v2/integration/aws/iam_permissions/resource_collection" + }, + "response": { + "body": { + "string": "{\"data\":{\"id\":\"permissions\",\"type\":\"permissions\",\"attributes\":{\"permissions\":[\"account:GetContactInformation\",\"amplify:ListApps\",\"amplify:ListArtifacts\",\"amplify:ListBackendEnvironments\",\"amplify:ListBranches\",\"amplify:ListDomainAssociations\",\"amplify:ListJobs\",\"amplify:ListWebhooks\",\"aoss:BatchGetCollection\",\"aoss:ListCollections\",\"app-integrations:GetApplication\",\"app-integrations:GetDataIntegration\",\"app-integrations:ListApplicationAssociations\",\"app-integrations:ListApplications\",\"app-integrations:ListDataIntegrationAssociations\",\"app-integrations:ListDataIntegrations\",\"app-integrations:ListEventIntegrationAssociations\",\"app-integrations:ListEventIntegrations\",\"appstream:DescribeAppBlockBuilders\",\"appstream:DescribeAppBlocks\",\"appstream:DescribeApplications\",\"appstream:DescribeFleets\",\"appstream:DescribeImageBuilders\",\"appstream:DescribeImages\",\"appstream:DescribeStacks\",\"appsync:GetGraphqlApi\",\"aps:DescribeRuleGroupsNamespace\",\"aps:DescribeScraper\",\"aps:DescribeWorkspace\",\"aps:ListRuleGroupsNamespaces\",\"aps:ListScrapers\",\"aps:ListWorkspaces\",\"athena:BatchGetNamedQuery\",\"athena:BatchGetPreparedStatement\",\"auditmanager:GetAssessment\",\"auditmanager:GetAssessmentFramework\",\"auditmanager:GetControl\",\"b2bi:GetCapability\",\"b2bi:GetPartnership\",\"b2bi:GetProfile\",\"b2bi:GetTransformer\",\"b2bi:ListCapabilities\",\"b2bi:ListPartnerships\",\"b2bi:ListProfiles\",\"b2bi:ListTransformers\",\"backup-gateway:GetGateway\",\"backup-gateway:GetHypervisor\",\"backup-gateway:GetVirtualMachine\",\"backup-gateway:ListGateways\",\"backup-gateway:ListHypervisors\",\"backup-gateway:ListVirtualMachines\",\"backup:DescribeFramework\",\"backup:GetLegalHold\",\"backup:ListBackupPlans\",\"backup:ListFrameworks\",\"backup:ListLegalHolds\",\"backup:ListProtectedResources\",\"backup:ListRecoveryPointsByBackupVault\",\"batch:DescribeJobQueues\",\"batch:DescribeSchedulingPolicies\",\"batch:ListSchedulingPolicies\",\"bedrock:GetAgent\",\"bedrock:GetAgentActionGroup\",\"bedrock:GetAsyncInvoke\",\"bedrock:GetBlueprint\",\"bedrock:GetDataSource\",\"bedrock:GetEvaluationJob\",\"bedrock:GetFlow\",\"bedrock:GetFlowVersion\",\"bedrock:GetGuardrail\",\"bedrock:GetKnowledgeBase\",\"bedrock:GetModelInvocationJob\",\"bedrock:GetPrompt\",\"bedrock:ListAgentCollaborators\",\"bedrock:ListAsyncInvokes\",\"bedrock:ListBlueprints\",\"bedrock:ListKnowledgeBaseDocuments\",\"cassandra:Select\",\"ce:DescribeCostCategoryDefinition\",\"ce:GetAnomalyMonitors\",\"ce:GetAnomalySubscriptions\",\"ce:GetCostCategories\",\"cloudformation:DescribeGeneratedTemplate\",\"cloudformation:DescribeResourceScan\",\"cloudformation:ListGeneratedTemplates\",\"cloudformation:ListResourceScans\",\"cloudformation:ListTypes\",\"cloudhsm:DescribeBackups\",\"cloudhsm:DescribeClusters\",\"codeartifact:DescribeDomain\",\"codeartifact:DescribePackageGroup\",\"codeartifact:DescribeRepository\",\"codeartifact:ListDomains\",\"codeartifact:ListPackageGroups\",\"codeartifact:ListPackages\",\"codeguru-profiler:ListFindingsReports\",\"codeguru-profiler:ListProfilingGroups\",\"codeguru-reviewer:ListCodeReviews\",\"codeguru-reviewer:ListRepositoryAssociations\",\"codeguru-security:GetFindings\",\"codeguru-security:GetScan\",\"codeguru-security:ListScans\",\"codepipeline:GetActionType\",\"codepipeline:ListActionTypes\",\"codepipeline:ListWebhooks\",\"connect:DescribeAgentStatus\",\"connect:DescribeAuthenticationProfile\",\"connect:DescribeContactFlow\",\"connect:DescribeContactFlowModule\",\"connect:DescribeHoursOfOperation\",\"connect:DescribeInstance\",\"connect:DescribeQueue\",\"connect:DescribeQuickConnect\",\"connect:DescribeRoutingProfile\",\"connect:DescribeSecurityProfile\",\"connect:DescribeUser\",\"connect:ListAgentStatuses\",\"connect:ListAuthenticationProfiles\",\"connect:ListContactFlowModules\",\"connect:ListContactFlows\",\"connect:ListHoursOfOperations\",\"connect:ListQueues\",\"connect:ListQuickConnects\",\"connect:ListRoutingProfiles\",\"connect:ListSecurityProfiles\",\"connect:ListUsers\",\"controltower:GetLandingZone\",\"controltower:ListEnabledBaselines\",\"controltower:ListEnabledControls\",\"controltower:ListLandingZones\",\"databrew:ListDatasets\",\"databrew:ListRecipes\",\"databrew:ListRulesets\",\"databrew:ListSchedules\",\"datazone:GetDomain\",\"datazone:ListDomains\",\"deadline:GetBudget\",\"deadline:GetLicenseEndpoint\",\"deadline:GetQueue\",\"deadline:ListBudgets\",\"deadline:ListFarms\",\"deadline:ListFleets\",\"deadline:ListLicenseEndpoints\",\"deadline:ListMonitors\",\"deadline:ListQueues\",\"deadline:ListWorkers\",\"devicefarm:ListDeviceInstances\",\"devicefarm:ListDevicePools\",\"devicefarm:ListDevices\",\"devicefarm:ListInstanceProfiles\",\"devicefarm:ListNetworkProfiles\",\"devicefarm:ListRemoteAccessSessions\",\"devicefarm:ListTestGridProjects\",\"devicefarm:ListTestGridSessions\",\"devicefarm:ListUploads\",\"devicefarm:ListVPCEConfigurations\",\"dlm:GetLifecyclePolicies\",\"dlm:GetLifecyclePolicy\",\"docdb-elastic:GetCluster\",\"docdb-elastic:GetClusterSnapshot\",\"docdb-elastic:ListClusterSnapshots\",\"drs:DescribeJobs\",\"drs:DescribeLaunchConfigurationTemplates\",\"drs:DescribeRecoveryInstances\",\"drs:DescribeReplicationConfigurationTemplates\",\"drs:DescribeSourceNetworks\",\"drs:DescribeSourceServers\",\"dsql:GetCluster\",\"dsql:ListClusters\",\"dynamodb:DescribeBackup\",\"dynamodb:DescribeStream\",\"ec2:GetAllowedImagesSettings\",\"ec2:GetEbsDefaultKmsKeyId\",\"ec2:GetInstanceMetadataDefaults\",\"ec2:GetSerialConsoleAccessStatus\",\"ec2:GetSnapshotBlockPublicAccessState\",\"ec2:GetVerifiedAccessEndpointPolicy\",\"ec2:GetVerifiedAccessEndpointTargets\",\"ec2:GetVerifiedAccessGroupPolicy\",\"eks:DescribeAccessEntry\",\"eks:DescribeAddon\",\"eks:DescribeIdentityProviderConfig\",\"eks:DescribeInsight\",\"eks:DescribePodIdentityAssociation\",\"eks:DescribeUpdate\",\"eks:ListAccessEntries\",\"eks:ListAddons\",\"eks:ListAssociatedAccessPolicies\",\"eks:ListEksAnywhereSubscriptions\",\"eks:ListIdentityProviderConfigs\",\"eks:ListInsights\",\"eks:ListPodIdentityAssociations\",\"elasticmapreduce:ListInstanceFleets\",\"elasticmapreduce:ListInstanceGroups\",\"emr-containers:ListManagedEndpoints\",\"emr-containers:ListSecurityConfigurations\",\"emr-containers:ListVirtualClusters\",\"frauddetector:DescribeDetector\",\"frauddetector:DescribeModelVersions\",\"frauddetector:GetBatchImportJobs\",\"frauddetector:GetBatchPredictionJobs\",\"frauddetector:GetDetectorVersion\",\"frauddetector:GetEntityTypes\",\"frauddetector:GetEventTypes\",\"frauddetector:GetExternalModels\",\"frauddetector:GetLabels\",\"frauddetector:GetListsMetadata\",\"frauddetector:GetModels\",\"frauddetector:GetOutcomes\",\"frauddetector:GetRules\",\"frauddetector:GetVariables\",\"gamelift:DescribeGameSessionQueues\",\"gamelift:DescribeMatchmakingConfigurations\",\"gamelift:DescribeMatchmakingRuleSets\",\"gamelift:ListAliases\",\"gamelift:ListContainerFleets\",\"gamelift:ListContainerGroupDefinitions\",\"gamelift:ListGameServerGroups\",\"gamelift:ListLocations\",\"gamelift:ListScripts\",\"geo:DescribeGeofenceCollection\",\"geo:DescribeKey\",\"geo:DescribeMap\",\"geo:DescribePlaceIndex\",\"geo:DescribeRouteCalculator\",\"geo:DescribeTracker\",\"geo:ListGeofenceCollections\",\"geo:ListKeys\",\"geo:ListPlaceIndexes\",\"geo:ListRouteCalculators\",\"geo:ListTrackers\",\"glacier:GetVaultNotifications\",\"glue:ListRegistries\",\"grafana:DescribeWorkspace\",\"greengrass:GetBulkDeploymentStatus\",\"greengrass:GetComponent\",\"greengrass:GetConnectivityInfo\",\"greengrass:GetCoreDevice\",\"greengrass:GetDeployment\",\"greengrass:GetGroup\",\"imagebuilder:GetContainerRecipe\",\"imagebuilder:GetDistributionConfiguration\",\"imagebuilder:GetImageRecipe\",\"imagebuilder:GetInfrastructureConfiguration\",\"imagebuilder:GetLifecyclePolicy\",\"imagebuilder:GetWorkflow\",\"imagebuilder:ListComponents\",\"imagebuilder:ListContainerRecipes\",\"imagebuilder:ListDistributionConfigurations\",\"imagebuilder:ListImagePipelines\",\"imagebuilder:ListImageRecipes\",\"imagebuilder:ListImages\",\"imagebuilder:ListInfrastructureConfigurations\",\"imagebuilder:ListLifecyclePolicies\",\"imagebuilder:ListWorkflows\",\"iotfleetwise:GetCampaign\",\"iotfleetwise:GetSignalCatalog\",\"iotfleetwise:GetStateTemplate\",\"iotfleetwise:GetVehicle\",\"iotfleetwise:ListCampaigns\",\"iotfleetwise:ListDecoderManifests\",\"iotfleetwise:ListFleets\",\"iotfleetwise:ListSignalCatalogs\",\"iotfleetwise:ListStateTemplates\",\"iotfleetwise:ListVehicles\",\"iotsitewise:DescribeAsset\",\"iotsitewise:DescribeAssetModel\",\"iotsitewise:DescribeDashboard\",\"iotsitewise:DescribeDataset\",\"iotsitewise:DescribePortal\",\"iotsitewise:DescribeProject\",\"iotsitewise:ListAssets\",\"iotsitewise:ListDashboards\",\"iotsitewise:ListDatasets\",\"iotsitewise:ListPortals\",\"iotsitewise:ListProjects\",\"iotsitewise:ListTimeSeries\",\"iottwinmaker:GetComponentType\",\"iottwinmaker:GetEntity\",\"iottwinmaker:GetScene\",\"iottwinmaker:GetWorkspace\",\"iottwinmaker:ListComponentTypes\",\"iottwinmaker:ListEntities\",\"iottwinmaker:ListScenes\",\"iotwireless:GetDeviceProfile\",\"iotwireless:GetMulticastGroup\",\"iotwireless:GetNetworkAnalyzerConfiguration\",\"iotwireless:GetServiceProfile\",\"iotwireless:GetWirelessDevice\",\"iotwireless:GetWirelessGateway\",\"iotwireless:ListDestinations\",\"iotwireless:ListDeviceProfiles\",\"iotwireless:ListMulticastGroups\",\"iotwireless:ListNetworkAnalyzerConfigurations\",\"iotwireless:ListServiceProfiles\",\"iotwireless:ListWirelessDevices\",\"iotwireless:ListWirelessGateways\",\"ivs:GetChannel\",\"ivs:GetComposition\",\"ivs:GetEncoderConfiguration\",\"ivs:GetIngestConfiguration\",\"ivs:GetPublicKey\",\"ivs:GetRecordingConfiguration\",\"ivs:GetStage\",\"ivs:ListChannels\",\"ivs:ListCompositions\",\"ivs:ListEncoderConfigurations\",\"ivs:ListIngestConfigurations\",\"ivs:ListPlaybackKeyPairs\",\"ivs:ListPlaybackRestrictionPolicies\",\"ivs:ListPublicKeys\",\"ivs:ListRecordingConfigurations\",\"ivs:ListStages\",\"ivs:ListStorageConfigurations\",\"ivs:ListStreamKeys\",\"ivschat:GetLoggingConfiguration\",\"ivschat:GetRoom\",\"ivschat:ListLoggingConfigurations\",\"ivschat:ListRooms\",\"lakeformation:GetDataLakeSettings\",\"lakeformation:ListPermissions\",\"lambda:GetFunction\",\"launchwizard:GetDeployment\",\"launchwizard:ListDeployments\",\"lightsail:GetAlarms\",\"lightsail:GetCertificates\",\"lightsail:GetDistributions\",\"lightsail:GetInstancePortStates\",\"lightsail:GetRelationalDatabaseParameters\",\"lightsail:GetRelationalDatabaseSnapshots\",\"lightsail:GetRelationalDatabases\",\"lightsail:GetStaticIps\",\"macie2:GetAllowList\",\"macie2:GetCustomDataIdentifier\",\"macie2:GetMacieSession\",\"macie2:ListAllowLists\",\"macie2:ListCustomDataIdentifiers\",\"macie2:ListMembers\",\"managedblockchain:GetAccessor\",\"managedblockchain:GetMember\",\"managedblockchain:GetNetwork\",\"managedblockchain:GetNode\",\"managedblockchain:GetProposal\",\"managedblockchain:ListAccessors\",\"managedblockchain:ListInvitations\",\"managedblockchain:ListMembers\",\"managedblockchain:ListNodes\",\"managedblockchain:ListProposals\",\"medialive:ListChannelPlacementGroups\",\"medialive:ListCloudWatchAlarmTemplateGroups\",\"medialive:ListCloudWatchAlarmTemplates\",\"medialive:ListClusters\",\"medialive:ListEventBridgeRuleTemplateGroups\",\"medialive:ListEventBridgeRuleTemplates\",\"medialive:ListInputDevices\",\"medialive:ListInputSecurityGroups\",\"medialive:ListInputs\",\"medialive:ListMultiplexes\",\"medialive:ListNetworks\",\"medialive:ListNodes\",\"medialive:ListOfferings\",\"medialive:ListReservations\",\"medialive:ListSdiSources\",\"medialive:ListSignalMaps\",\"mediapackage-vod:DescribeAsset\",\"mediapackage-vod:ListAssets\",\"mediapackage-vod:ListPackagingConfigurations\",\"mediapackage:ListChannels\",\"mediapackage:ListHarvestJobs\",\"mediapackagev2:GetChannel\",\"mediapackagev2:GetChannelGroup\",\"mediapackagev2:GetChannelPolicy\",\"mediapackagev2:GetOriginEndpoint\",\"mediapackagev2:GetOriginEndpointPolicy\",\"mediapackagev2:ListChannelGroups\",\"mediapackagev2:ListChannels\",\"mediapackagev2:ListHarvestJobs\",\"mediapackagev2:ListOriginEndpoints\",\"memorydb:DescribeAcls\",\"memorydb:DescribeMultiRegionClusters\",\"memorydb:DescribeParameterGroups\",\"memorydb:DescribeReservedNodes\",\"memorydb:DescribeSnapshots\",\"memorydb:DescribeSubnetGroups\",\"memorydb:DescribeUsers\",\"mobiletargeting:GetApps\",\"mobiletargeting:GetCampaigns\",\"mobiletargeting:GetChannels\",\"mobiletargeting:GetEventStream\",\"mobiletargeting:GetSegments\",\"mobiletargeting:ListJourneys\",\"mobiletargeting:ListTemplates\",\"network-firewall:DescribeTLSInspectionConfiguration\",\"network-firewall:DescribeVpcEndpointAssociation\",\"network-firewall:ListTLSInspectionConfigurations\",\"network-firewall:ListVpcEndpointAssociations\",\"networkmanager:GetConnectPeer\",\"networkmanager:GetConnections\",\"networkmanager:GetCoreNetwork\",\"networkmanager:GetDevices\",\"networkmanager:GetLinks\",\"networkmanager:GetSites\",\"networkmanager:ListAttachments\",\"networkmanager:ListConnectPeers\",\"networkmanager:ListCoreNetworks\",\"networkmanager:ListPeerings\",\"osis:GetPipeline\",\"osis:GetPipelineBlueprint\",\"osis:ListPipelineBlueprints\",\"osis:ListPipelines\",\"payment-cryptography:GetKey\",\"payment-cryptography:ListAliases\",\"payment-cryptography:ListKeys\",\"pca-connector-ad:ListConnectors\",\"pca-connector-ad:ListDirectoryRegistrations\",\"pca-connector-ad:ListTemplates\",\"pca-connector-scep:ListConnectors\",\"personalize:DescribeAlgorithm\",\"personalize:DescribeBatchInferenceJob\",\"personalize:DescribeBatchSegmentJob\",\"personalize:DescribeCampaign\",\"personalize:DescribeDataDeletionJob\",\"personalize:DescribeDataset\",\"personalize:DescribeDatasetExportJob\",\"personalize:DescribeDatasetImportJob\",\"personalize:DescribeEventTracker\",\"personalize:DescribeFeatureTransformation\",\"personalize:DescribeFilter\",\"personalize:DescribeMetricAttribution\",\"personalize:DescribeRecipe\",\"personalize:DescribeRecommender\",\"personalize:DescribeSchema\",\"personalize:DescribeSolution\",\"personalize:ListBatchInferenceJobs\",\"personalize:ListBatchSegmentJobs\",\"personalize:ListCampaigns\",\"personalize:ListDataDeletionJobs\",\"personalize:ListDatasetExportJobs\",\"personalize:ListDatasetImportJobs\",\"personalize:ListDatasets\",\"personalize:ListEventTrackers\",\"personalize:ListFilters\",\"personalize:ListMetricAttributions\",\"personalize:ListRecipes\",\"personalize:ListRecommenders\",\"personalize:ListSchemas\",\"personalize:ListSolutions\",\"pipes:ListPipes\",\"proton:GetComponent\",\"proton:GetDeployment\",\"proton:GetEnvironment\",\"proton:GetEnvironmentAccountConnection\",\"proton:GetEnvironmentTemplate\",\"proton:GetEnvironmentTemplateVersion\",\"proton:GetRepository\",\"proton:GetService\",\"proton:GetServiceInstance\",\"proton:GetServiceTemplate\",\"proton:GetServiceTemplateVersion\",\"proton:ListComponents\",\"proton:ListDeployments\",\"proton:ListEnvironmentAccountConnections\",\"proton:ListEnvironmentTemplateVersions\",\"proton:ListEnvironmentTemplates\",\"proton:ListEnvironments\",\"proton:ListRepositories\",\"proton:ListServiceInstances\",\"proton:ListServiceTemplateVersions\",\"proton:ListServiceTemplates\",\"proton:ListServices\",\"qbusiness:GetApplication\",\"qbusiness:GetDataAccessor\",\"qbusiness:GetDataSource\",\"qbusiness:GetIndex\",\"qbusiness:GetPlugin\",\"qbusiness:GetRetriever\",\"qbusiness:GetWebExperience\",\"qbusiness:ListDataAccessors\",\"ram:GetResourceShareInvitations\",\"rbin:GetRule\",\"rbin:ListRules\",\"redshift-serverless:GetSnapshot\",\"redshift-serverless:ListEndpointAccess\",\"redshift-serverless:ListManagedWorkgroups\",\"redshift-serverless:ListNamespaces\",\"redshift-serverless:ListRecoveryPoints\",\"redshift-serverless:ListSnapshots\",\"refactor-spaces:ListApplications\",\"refactor-spaces:ListEnvironments\",\"refactor-spaces:ListRoutes\",\"refactor-spaces:ListServices\",\"resiliencehub:DescribeApp\",\"resiliencehub:DescribeAppAssessment\",\"resiliencehub:ListAppAssessments\",\"resiliencehub:ListApps\",\"resiliencehub:ListResiliencyPolicies\",\"resource-explorer-2:GetIndex\",\"resource-explorer-2:GetManagedView\",\"resource-explorer-2:GetView\",\"resource-explorer-2:ListManagedViews\",\"resource-explorer-2:ListViews\",\"resource-groups:GetGroup\",\"resource-groups:ListGroups\",\"route53-recovery-readiness:ListCells\",\"route53-recovery-readiness:ListReadinessChecks\",\"route53-recovery-readiness:ListRecoveryGroups\",\"route53-recovery-readiness:ListResourceSets\",\"rum:GetAppMonitor\",\"rum:ListAppMonitors\",\"s3-outposts:ListRegionalBuckets\",\"savingsplans:DescribeSavingsPlanRates\",\"savingsplans:DescribeSavingsPlans\",\"scheduler:GetSchedule\",\"scheduler:ListScheduleGroups\",\"scheduler:ListSchedules\",\"securitylake:ListDataLakes\",\"securitylake:ListSubscribers\",\"servicecatalog:DescribePortfolio\",\"servicecatalog:DescribeProduct\",\"servicecatalog:GetApplication\",\"servicecatalog:GetAttributeGroup\",\"servicecatalog:ListApplications\",\"servicecatalog:ListAttributeGroups\",\"servicecatalog:ListPortfolios\",\"servicecatalog:SearchProducts\",\"servicediscovery:GetNamespace\",\"servicediscovery:GetService\",\"servicediscovery:ListNamespaces\",\"servicediscovery:ListServices\",\"ses:GetArchive\",\"ses:GetContactList\",\"ses:GetCustomVerificationEmailTemplate\",\"ses:GetDedicatedIpPool\",\"ses:GetIdentityMailFromDomainAttributes\",\"ses:GetIngressPoint\",\"ses:GetMultiRegionEndpoint\",\"ses:GetRelay\",\"ses:GetRuleSet\",\"ses:GetTemplate\",\"ses:GetTrafficPolicy\",\"ses:ListAddonInstances\",\"ses:ListAddonSubscriptions\",\"ses:ListAddressLists\",\"ses:ListArchives\",\"ses:ListContactLists\",\"ses:ListCustomVerificationEmailTemplates\",\"ses:ListIngressPoints\",\"ses:ListMultiRegionEndpoints\",\"ses:ListRelays\",\"ses:ListRuleSets\",\"ses:ListTemplates\",\"ses:ListTrafficPolicies\",\"signer:GetSigningProfile\",\"signer:ListSigningProfiles\",\"sms-voice:DescribeConfigurationSets\",\"sms-voice:DescribeOptOutLists\",\"sms-voice:DescribePhoneNumbers\",\"sms-voice:DescribePools\",\"sms-voice:DescribeProtectConfigurations\",\"sms-voice:DescribeRegistrationAttachments\",\"sms-voice:DescribeRegistrations\",\"sms-voice:DescribeSenderIds\",\"sms-voice:DescribeVerifiedDestinationNumbers\",\"snowball:DescribeCluster\",\"snowball:DescribeJob\",\"sns:ListEndpointsByPlatformApplication\",\"sns:ListPlatformApplications\",\"social-messaging:GetLinkedWhatsAppBusinessAccount\",\"social-messaging:ListLinkedWhatsAppBusinessAccounts\",\"sqs:GetQueueUrl\",\"ssm-incidents:GetIncidentRecord\",\"ssm-incidents:GetReplicationSet\",\"ssm-incidents:GetResponsePlan\",\"ssm-incidents:ListIncidentRecords\",\"ssm-incidents:ListReplicationSets\",\"ssm-incidents:ListResponsePlans\",\"ssm:GetMaintenanceWindow\",\"ssm:GetOpsItem\",\"ssm:GetPatchBaseline\",\"states:ListActivities\",\"states:ListExecutions\",\"states:ListMapRuns\",\"states:ListStateMachineAliases\",\"storagegateway:DescribeFileSystemAssociations\",\"storagegateway:DescribeSMBFileShares\",\"textract:GetAdapter\",\"textract:GetAdapterVersion\",\"textract:ListAdapterVersions\",\"textract:ListAdapters\",\"timestream:ListScheduledQueries\",\"timestream:ListTables\",\"transcribe:GetCallAnalyticsJob\",\"transcribe:GetMedicalScribeJob\",\"transcribe:GetMedicalTranscriptionJob\",\"transcribe:GetTranscriptionJob\",\"transcribe:ListMedicalScribeJobs\",\"translate:GetParallelData\",\"translate:GetTerminology\",\"verifiedpermissions:GetPolicyStore\",\"verifiedpermissions:ListIdentitySources\",\"verifiedpermissions:ListPolicies\",\"verifiedpermissions:ListPolicyStores\",\"verifiedpermissions:ListPolicyTemplates\",\"vpc-lattice:GetListener\",\"vpc-lattice:GetResourceConfiguration\",\"vpc-lattice:GetResourceGateway\",\"vpc-lattice:GetRule\",\"vpc-lattice:GetService\",\"vpc-lattice:GetServiceNetwork\",\"vpc-lattice:GetTargetGroup\",\"vpc-lattice:ListAccessLogSubscriptions\",\"vpc-lattice:ListListeners\",\"vpc-lattice:ListResourceConfigurations\",\"vpc-lattice:ListResourceEndpointAssociations\",\"vpc-lattice:ListResourceGateways\",\"vpc-lattice:ListRules\",\"vpc-lattice:ListServiceNetworkResourceAssociations\",\"vpc-lattice:ListServiceNetworkServiceAssociations\",\"vpc-lattice:ListServiceNetworkVpcAssociations\",\"vpc-lattice:ListServiceNetworks\",\"vpc-lattice:ListServices\",\"vpc-lattice:ListTargetGroups\",\"waf-regional:GetRule\",\"waf-regional:GetRuleGroup\",\"waf-regional:ListRuleGroups\",\"waf-regional:ListRules\",\"waf:GetRule\",\"waf:GetRuleGroup\",\"waf:ListRuleGroups\",\"waf:ListRules\",\"wafv2:GetIPSet\",\"wafv2:GetRegexPatternSet\",\"wafv2:GetRuleGroup\",\"workmail:DescribeOrganization\",\"workmail:ListOrganizations\",\"workspaces-web:GetBrowserSettings\",\"workspaces-web:GetDataProtectionSettings\",\"workspaces-web:GetIdentityProvider\",\"workspaces-web:GetIpAccessSettings\",\"workspaces-web:GetNetworkSettings\",\"workspaces-web:GetTrustStore\",\"workspaces-web:GetUserAccessLoggingSettings\",\"workspaces-web:GetUserSettings\",\"workspaces-web:ListBrowserSettings\",\"workspaces-web:ListDataProtectionSettings\",\"workspaces-web:ListIdentityProviders\",\"workspaces-web:ListIpAccessSettings\",\"workspaces-web:ListNetworkSettings\",\"workspaces-web:ListPortals\",\"workspaces-web:ListTrustStores\",\"workspaces-web:ListUserAccessLoggingSettings\",\"workspaces-web:ListUserSettings\"]}}}", + "encoding": null + }, + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "status": { + "code": 200, + "message": "OK" + } + }, + "recorded_at": "Wed, 17 Sep 2025 18:27:22 GMT" + } + ], + "recorded_with": "VCR 6.0.0" +} \ No newline at end of file diff --git a/tests/scenarios/features/v2/aws_integration.feature b/tests/scenarios/features/v2/aws_integration.feature index a672cfebe..16522a97c 100644 --- a/tests/scenarios/features/v2/aws_integration.feature +++ b/tests/scenarios/features/v2/aws_integration.feature @@ -79,6 +79,18 @@ Feature: AWS Integration When the request is sent Then the response status is 200 AWS IAM Permissions object + @team:DataDog/aws-integrations + Scenario: Get AWS integration standard IAM permissions returns "AWS IAM Permissions object" response + Given new "GetAWSIntegrationIAMPermissionsStandard" request + When the request is sent + Then the response status is 200 AWS IAM Permissions object + + @generated @skip @team:DataDog/aws-integrations + Scenario: Get AWS integration standard IAM permissions returns "AWS integration standard IAM permissions." response + Given new "GetAWSIntegrationIAMPermissionsStandard" request + When the request is sent + Then the response status is 200 AWS integration standard IAM permissions. + @team:DataDog/aws-integrations Scenario: Get an AWS integration by config ID returns "AWS Account object" response Given there is a valid "aws_account_v2" in the system @@ -101,6 +113,18 @@ Feature: AWS Integration When the request is sent Then the response status is 404 Not Found + @team:DataDog/aws-integrations + Scenario: Get resource collection IAM permissions returns "AWS IAM Permissions object" response + Given new "GetAWSIntegrationIAMPermissionsResourceCollection" request + When the request is sent + Then the response status is 200 AWS IAM Permissions object + + @generated @skip @team:DataDog/aws-integrations + Scenario: Get resource collection IAM permissions returns "AWS integration resource collection IAM permissions." response + Given new "GetAWSIntegrationIAMPermissionsResourceCollection" request + When the request is sent + Then the response status is 200 AWS integration resource collection IAM permissions. + @team:DataDog/aws-integrations Scenario: List all AWS integrations returns "AWS Accounts List object" response Given new "ListAWSAccounts" request diff --git a/tests/scenarios/features/v2/undo.json b/tests/scenarios/features/v2/undo.json index d864e99bb..85202abf3 100644 --- a/tests/scenarios/features/v2/undo.json +++ b/tests/scenarios/features/v2/undo.json @@ -1529,6 +1529,18 @@ "type": "safe" } }, + "GetAWSIntegrationIAMPermissionsResourceCollection": { + "tag": "AWS Integration", + "undo": { + "type": "safe" + } + }, + "GetAWSIntegrationIAMPermissionsStandard": { + "tag": "AWS Integration", + "undo": { + "type": "safe" + } + }, "ListAWSLogsServices": { "tag": "AWS Logs Integration", "undo": { diff --git a/tests/scenarios/function_mappings.rs b/tests/scenarios/function_mappings.rs index 80722e6ea..4d308c950 100644 --- a/tests/scenarios/function_mappings.rs +++ b/tests/scenarios/function_mappings.rs @@ -2892,6 +2892,14 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { "v2.GetAWSIntegrationIAMPermissions".into(), test_v2_get_aws_integration_iam_permissions, ); + world.function_mappings.insert( + "v2.GetAWSIntegrationIAMPermissionsResourceCollection".into(), + test_v2_get_aws_integration_iam_permissions_resource_collection, + ); + world.function_mappings.insert( + "v2.GetAWSIntegrationIAMPermissionsStandard".into(), + test_v2_get_aws_integration_iam_permissions_standard, + ); world.function_mappings.insert( "v2.ListAWSLogsServices".into(), test_v2_list_aws_logs_services, @@ -21813,6 +21821,63 @@ fn test_v2_get_aws_integration_iam_permissions( world.response.code = response.status.as_u16(); } +fn test_v2_get_aws_integration_iam_permissions_resource_collection( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_aws_integration + .as_ref() + .expect("api instance not found"); + let response = match block_on( + api.get_aws_integration_iam_permissions_resource_collection_with_http_info(), + ) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_get_aws_integration_iam_permissions_standard( + world: &mut DatadogWorld, + _parameters: &HashMap, +) { + let api = world + .api_instances + .v2_api_aws_integration + .as_ref() + .expect("api instance not found"); + let response = match block_on(api.get_aws_integration_iam_permissions_standard_with_http_info()) + { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + fn test_v2_list_aws_logs_services(world: &mut DatadogWorld, _parameters: &HashMap) { let api = world .api_instances