diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index db9d07fc09fe..f3d3ffaa56b6 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/cassettes/features/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.frozen b/cassettes/features/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.frozen new file mode 100644 index 000000000000..ae96a74a0e3f --- /dev/null +++ b/cassettes/features/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/cassettes/features/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.yml b/cassettes/features/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.yml new file mode 100644 index 000000000000..dc61a9380863 --- /dev/null +++ b/cassettes/features/v2/aws_integration/Get-AWS-integration-standard-IAM-permissions-returns-AWS-IAM-Permissions-object-response.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Wed, 17 Sep 2025 18:27:22 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/integration/aws/iam_permissions/standard + response: + body: + encoding: UTF-8 + 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"]}}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.frozen b/cassettes/features/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.frozen new file mode 100644 index 000000000000..127546bcfe38 --- /dev/null +++ b/cassettes/features/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/cassettes/features/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.yml b/cassettes/features/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.yml new file mode 100644 index 000000000000..7e644635c261 --- /dev/null +++ b/cassettes/features/v2/aws_integration/Get-resource-collection-IAM-permissions-returns-AWS-IAM-Permissions-object-response.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Wed, 17 Sep 2025 18:27:22 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/integration/aws/iam_permissions/resource_collection + response: + body: + encoding: UTF-8 + 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"]}}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsResourceCollection.rb b/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsResourceCollection.rb new file mode 100644 index 000000000000..f69c57cbad81 --- /dev/null +++ b/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsResourceCollection.rb @@ -0,0 +1,5 @@ +# Get resource collection IAM permissions returns "AWS integration resource collection IAM permissions." response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::AWSIntegrationAPI.new +p api_instance.get_aws_integration_iam_permissions_resource_collection() diff --git a/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsResourceCollection_1008672547.rb b/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsResourceCollection_1008672547.rb new file mode 100644 index 000000000000..eca65862cd9d --- /dev/null +++ b/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsResourceCollection_1008672547.rb @@ -0,0 +1,5 @@ +# Get resource collection IAM permissions returns "AWS IAM Permissions object" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::AWSIntegrationAPI.new +p api_instance.get_aws_integration_iam_permissions_resource_collection() diff --git a/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsStandard.rb b/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsStandard.rb new file mode 100644 index 000000000000..8e0cfc038673 --- /dev/null +++ b/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsStandard.rb @@ -0,0 +1,5 @@ +# Get AWS integration standard IAM permissions returns "AWS integration standard IAM permissions." response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::AWSIntegrationAPI.new +p api_instance.get_aws_integration_iam_permissions_standard() diff --git a/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsStandard_3136299151.rb b/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsStandard_3136299151.rb new file mode 100644 index 000000000000..c1757547742f --- /dev/null +++ b/examples/v2/aws-integration/GetAWSIntegrationIAMPermissionsStandard_3136299151.rb @@ -0,0 +1,5 @@ +# Get AWS integration standard IAM permissions returns "AWS IAM Permissions object" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::AWSIntegrationAPI.new +p api_instance.get_aws_integration_iam_permissions_standard() diff --git a/features/v2/aws_integration.feature b/features/v2/aws_integration.feature index a672cfebe7f8..16522a97cf57 100644 --- a/features/v2/aws_integration.feature +++ b/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/features/v2/undo.json b/features/v2/undo.json index d864e99bb626..85202abf3460 100644 --- a/features/v2/undo.json +++ b/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/lib/datadog_api_client/v2/api/aws_integration_api.rb b/lib/datadog_api_client/v2/api/aws_integration_api.rb index 4776e963fbc0..a5fa19c181c3 100644 --- a/lib/datadog_api_client/v2/api/aws_integration_api.rb +++ b/lib/datadog_api_client/v2/api/aws_integration_api.rb @@ -340,6 +340,126 @@ def get_aws_integration_iam_permissions_with_http_info(opts = {}) return data, status_code, headers end + # Get resource collection IAM permissions. + # + # @see #get_aws_integration_iam_permissions_resource_collection_with_http_info + def get_aws_integration_iam_permissions_resource_collection(opts = {}) + data, _status_code, _headers = get_aws_integration_iam_permissions_resource_collection_with_http_info(opts) + data + end + + # Get resource collection IAM permissions. + # + # Get all resource collection AWS IAM permissions required for the AWS integration. + # + # @param opts [Hash] the optional parameters + # @return [Array<(AWSIntegrationIamPermissionsResponse, Integer, Hash)>] AWSIntegrationIamPermissionsResponse data, response status code and response headers + def get_aws_integration_iam_permissions_resource_collection_with_http_info(opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AWSIntegrationAPI.get_aws_integration_iam_permissions_resource_collection ...' + end + # resource path + local_var_path = '/api/v2/integration/aws/iam_permissions/resource_collection' + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'AWSIntegrationIamPermissionsResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :get_aws_integration_iam_permissions_resource_collection, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AWSIntegrationAPI#get_aws_integration_iam_permissions_resource_collection\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Get AWS integration standard IAM permissions. + # + # @see #get_aws_integration_iam_permissions_standard_with_http_info + def get_aws_integration_iam_permissions_standard(opts = {}) + data, _status_code, _headers = get_aws_integration_iam_permissions_standard_with_http_info(opts) + data + end + + # Get AWS integration standard IAM permissions. + # + # Get all standard AWS IAM permissions required for the AWS integration. + # + # @param opts [Hash] the optional parameters + # @return [Array<(AWSIntegrationIamPermissionsResponse, Integer, Hash)>] AWSIntegrationIamPermissionsResponse data, response status code and response headers + def get_aws_integration_iam_permissions_standard_with_http_info(opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AWSIntegrationAPI.get_aws_integration_iam_permissions_standard ...' + end + # resource path + local_var_path = '/api/v2/integration/aws/iam_permissions/standard' + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'AWSIntegrationIamPermissionsResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :get_aws_integration_iam_permissions_standard, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: AWSIntegrationAPI#get_aws_integration_iam_permissions_standard\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # List all AWS integrations. # # @see #list_aws_accounts_with_http_info